Я буквально пытался отладить это в течение целого дня, и это совершенно изумительно. ища некоторые намеки.Объект Javascript, инициализированный странными значениями
я эти функции внутри яваскрипта имен:
var ZZ = {
bar: function(data) {
console.log(data);
},
foo: function() {
$.ajax({
'url':'/test',
'type':'GET',
'dataType':'jsonp',
'success':function(ret_json, status) {
console.log(ret_json); // SUCCESS_1
console.log(ret_json[1].title); //SUCCESS_2
bar(ret_json);
}
});
},
...
}
так я смотрю на вкладке «чистой» инструментов разработчика и JSON вернулся правильна .. что-то вроде:
[{'id':1, 'url':'http://a.com', 'title':'hi'}, {'id':2, 'url':'http://b.com', 'title':'hi2'}]
теперь я смотрю на консоль и вижу, что на SUCCESS_1 он выдает что-то вроде:
[{'id':1, 'url':'http://c.com', 'title':'hi3'}, {'id':2, 'url':'http://c.com', 'title':'hi3'}]
as вы можете видеть, что идентификатор верен, но URL-адрес и название - нет. (я также могу изменить идентификаторы в базе данных, и они будут корректно перенесены)
затем следующая строка на SUCCESS_2, она захватывает правильный заголовок! 'hi2'
следующий я положил инструкцию отладчика в функцию успеха: ret_json выглядит абсолютно правильно, но когда я вхожу в функцию bar(), данные снова выглядят неправильно.
следующий я добавлю:
var hi = {};
console.log(hi);
в функцию успеха .. он печатает .. (не шучу)
{'url':'http://c.com', 'title':'hi3'}
так в основном, это "по умолчанию" будет перезаписывать все, что было на самом деле там ,
Я добавил кэш: false для вызова ajax, я пробовал json и jsonp, i'v попытался очистить кеш, я пробовал использовать chrome/safari/firefox .. но ничего не делаю, и я сомневаюсь, что это что-то очевидное ... это действительно действительно испуганно.
любые другие идеи, что я могу попробовать?
ОБНОВЛЕНИЕ: добавление этого пространства имен на другой странице HTML. самого вопиющий пример
var hi = {}
console.log(hi)
печать материал исчез но оригинальная проблема ret_json, имеющую неправильные данные по-прежнему присутствует. (у меня до сих пор нет доступа к рабочей версии предыдущей страницы html)
Дело в том, что console.log (hi) определенно странно, ничего не могу сказать об этом сразу, но попытались ли вы удалить все внешние скрипты, кроме jquery и вашего сценария? Кроме того, попробуйте запустить ту же короткую часть кода в консоли ... –
Да, этот вызов ajax отлично работает, если я переместил его на страницу сам по себе .. это определенно какое-то странное взаимодействие с чем-то другим в моей текущей среде javascript ... просто не уверен, где я должен смотреть. – ggez44
Это как-то связано с одинарными кавычками в вашем JSON? – veritasetratio