JQuery getJSON () неправильно устанавливает заголовок Accept?

Похоже, у людей в прошлом были проблемы с заголовками Accept, но я не уверен, что моя проблема связана с этим. При использовании jQuery 1.4.2 у меня возникают проблемы с получением JSON с помощью getJSON () . Я могу наблюдать запрос / ответ в Firebug, и похоже, что источником проблемы является то, что рассматриваемый ресурс возвращает разные результаты в зависимости от заголовка Accept. Несмотря на то, что в документации сказано, что он должен быть установлен, в Firebug он отображается как « / » - очевидно, я хочу «application / json». Это известная ошибка? Я должен установить какой-то флаг, о котором я не знаю?

ETA: Запрос межсайтовый, если это важно, но я ' m передает параметр запроса callback =? , поэтому JQuery (успешно!) обрабатывает его как JSONP. Служба, которую я вызываю в этом конкретном случае, поддерживает параметр запроса переопределения accept ( & accept = application / json ), поэтому я заставил его работать вручную, но я все еще считаю ошибку заголовка странной и надеюсь, что смогу исправить это, поэтому я больше не сталкиваюсь с этим, когда имею дело с другим сервисом, который может быть не таким снисходительным. У меня нет простого способа скопировать / вставить код из моей среды разработки, но вот суть:

$.getJSON(baseURL + "?item=" + itemNum + "&callback=?", function(data){
  console.log(data);
}

Как видите, это не совсем сложно, и должен (мне 99 % уверен ...) приведет к отправке XHR с заголовком Accept application / json . Как я уже сказал, этого не происходит, согласно консоли Firebug Net. Если это важно, то это в Firefox 3.6.8.

ETA Опять: для тех, кто все еще читает это, да, это все еще происходит, и нет, я не знаю почему. Как я уже сказал, простой вызов getJSON (), действительно базовый синтаксис, межсайтовый, обрабатывается как JSONP, потому что он включает параметр запроса обратного вызова. По-прежнему открыты для предложений!

10
задан Coderer 14 October 2010 в 19:12
поделиться