2011-07-20 77 views
0

我想寫一個簡單的jquery腳本來解析一些JSON並將其格式化。沒什麼特別的,但我在Chrome中不斷收到以下錯誤:將資源解釋爲腳本,但以MIME類型text/html傳輸。jQuery XHR問題

我已經看過它,它看起來像一個相當普遍的問題。我遵循了我能找到的每一條建議,但仍然沒有運氣。這裏是我的代碼:

var url = "http://somesite.com/something/json/json_index.php?q="; 
var query = "someQuery"; 

$.ajax({ 
    url: url + query + "&callback=", 
    crossDomain:true, 
    dataType: 'jsonp', 
    success: function(data){ 
    alert('all done!'); 
    }, 
    error: function(data){ 
    alert('fail.'); 
    } 
}); 

任何人有任何想法/建議嗎?

回答

3

JSON-P通過在HTML文檔中創建一個<script>標記,並且遠程服務器預計返回yourCallback({the: data})。錯誤信息聽起來像服務器返回一個HTML文檔,而這可能是一個404錯誤或沿着這些線路的東西,或者可能只是一個配置錯誤的服務器的結果(儘管這聽起來不太可能,如果這是一個API針對JSON-P進行測試)。

谷歌Chrome的開發者工具也有一個網絡標籤,所以我建議你檢查一下發送的請求和你收到的回覆。這聽起來像是我們分類的StackOverflow用戶不能準確調試的東西,而不知道你正在使用什麼API的更多信息,但你應該希望能夠用你擁有的工具進行調試:)

我也注意到您發送的URL以callback=結尾,但jQuery文檔說您應該使用callback=?,並帶有問號,以便jQuery可以填寫回調名稱。也許增加?是你所需要的。

+0

我很蠢。我試圖在本地工作,並不斷得到一個原點空錯誤。然後我意識到我需要把它放在服務器上。那就是訣竅。此外,將我的數據類型更改爲'json',並刪除了「callbeck =」 - 現在就像一個魅力。謝謝! – Connor