Мне, к сожалению, требуется поддержка IE8, и я не могу получить простой простой запрос $.getJSON
.
Вот код:
url = "http://www.somejson.com/data.json";
$.getJSON(url, function(data) {
var funds = []; var benchmarks = [];
funds.push(data.funds); benchmarks.push(data.benchmarks);
$.each(data.funds, function(key, value) {
var ticker = key;
// Monthly:
var appendToDaily = function(ticker) {
$.each($("#"+ticker), function(key, value, index) {
$(this).children("td").filter(":nth-child(1)").html('<td>'+funds[0][ticker].name+'</td>');
$(this).children("td").filter(":nth-child(2)").html('<td>'+ticker+'</td>');
$(this).children("td").filter(":nth-child(3)").html('<td>'+funds[0][ticker].fund.inception_date+'</td>');
});
};
appendToDaily(ticker);
});
});
Этот код прекрасно работает в Chrome, Firefox и IE9 +.
Я попробовал несколько вещей, чтобы исправить это без успеха:
- Я пытался использовать метод
$.ajax
вместо этого. - Задайте заголовок для данных JSON:
response.setContentType("text/javascript; charset=UTF-8");
как предложено here. - Добавил этот фрагмент перед
$.getJSON
:$.ajaxSetup({ cache: false });
, а затем сбросьте его до истины непосредственно перед завершением вызова, как предложено here. - Я в явном виде включил
json2.js
на всякий случай. - Вернулся в JQuery
1.11.0.min.js
на всякий случай.
Когда я пытаюсь запустить этот код, я получаю несколько ошибок, говорящих, что «фонд» и «фонды» не определены. Я также замечаю, что абсолютно ничего внутри функции обратного вызова $.getJSON
не срабатывает; даже alert()
игнорируется.
Я как бы нахожусь здесь, поэтому любые предложения будут очень благодарны! Заранее спасибо.
Проверьте, включен ли Javascript в IE8 или другие параметры безопасности, что предотвращает запуск сценария - https://support.microsoft.com/en-us/gp/howtoscript – Tasos
Hrm, похоже, что JS включен; проблем нет. Однако хорошая мысль, я уверен, что это будет что-то маленькое и легко пропустить. -_- – Taj
Шаг 1: выяснить, почему он не работает. Посмотрите на свою консоль, даже IE8 имеет ее. Знайте, в чем проблема, прежде чем начинать попытки слепо «исправить» ее. –