Похоже, у людей были проблемы с заголовками Accept в прошлом, но я не уверен, что моя проблема связана. Используя jQuery 1.4.2, у меня возникли проблемы с получением JSON с getJSON()
. Я могу посмотреть запрос/ответ в Firebug, и похоже, что источником проблемы является то, что рассматриваемый ресурс возвращает разные результаты в зависимости от заголовка Accept. Несмотря на то, что документы говорят, что он должен быть установлен, в Firebug он отображается как «/» - очевидно, я хочу «application/json». Это известная ошибка? Должен ли я устанавливать какой-то флаг, о котором я не знаю?Ошибка getJSON() в JQuery неправильно настроена.
ETA: запрос является кросс-сайтом, если это имеет значение, но я передаю параметр запроса callback=?
, поэтому JQuery (успешно!) Рассматривает его как JSONP. Служба, которую я вызываю в этом конкретном случае, поддерживает параметр запроса переопределения accept (&accept=application/json
), поэтому я получил его для работы вручную, но я все еще считаю, что заголовок виноват, чтобы быть странным, и надеялся, что смогу его исправить, поэтому я не сталкиваюсь с этим снова, когда имею дело с другой услугой, которая может быть не столь прощающей. У меня нет простой способ скопировать/вставить код из моей среды разработки, но вот суть:
$.getJSON(baseURL + "?item=" + itemNum + "&callback=?", function(data){
console.log(data);
}
Как вы можете видеть, что это не совсем сложный, и должен (я 99 % sure ...) приводит к отправке XHR с заголовком Accept application/json
. Как я уже сказал, этого не происходит, в консоли Net Firebug. Если это имеет значение, это в Firefox 3.6.8.
ETA Снова: для тех, кто все еще читает это, да, это все еще происходит, и нет, я понятия не имею, почему. Как я уже сказал, простой вызов getJSON(), действительно базовый синтаксис, кросс-сайт, обрабатываемый как JSONP, поскольку он включает в себя параметр запроса обратного вызова. Все еще открыт для предложений!
Сообщите нам ваш код и мы можем помочь вам больше. – Steven
У меня такая же проблема в Chrome 8. $ .getJSON («url», function (data) {}) устанавливает заголовок Accept на */* –