它看起來像過去人們在接受標題時遇到問題,但我不確定我的問題是否相關。使用jQuery 1.4.2,我無法通過getJSON()
獲得JSON。我可以在Firebug中看到請求/響應,看起來問題的根源在於,有問題的資源根據Accept頭返回不同的結果。即使文檔說它應該設置,在Firebug它顯示爲「/」 - 顯然,我想要「application/json」。這是一個已知的錯誤?我應該設置一些我不知道的標誌嗎?JQuery的getJSON()沒有正確設置Accept頭?
ETA:請求是跨站點的,如果有問題,但我傳遞callback=?
查詢參數,以便JQuery(成功)將其視爲JSONP。我在這個特定情況下調用的服務支持接受覆蓋查詢參數(&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 Again:對於任何人仍然閱讀這個,是的,它仍然在發生,不,我不知道爲什麼。就像我說的那樣,簡單的getJSON()調用,真正基本的語法,跨站點,被視爲JSONP,因爲它包含回調查詢參數。仍然接受建議!
向我們顯示您的代碼,我們可能會幫助您更多。 – Steven 2010-09-23 18:22:24
我在Chrome 8中遇到了完全相同的問題。$ .getJSON(「url」,function(data){})設置Accept標頭爲*/* – 2010-10-16 04:28:46