2014-01-26 96 views
0

我想做一個谷歌瀏覽器擴展程序,但是我整晚都在嘲笑我的問題。我有以下的代碼給了我一個問題:在谷歌瀏覽器擴展程序中獲取JSON

var xhr = new XMLHttpRequest(); 
var resp; 
xhr.open("GET", "http://www.roblox.com/catalog/json?Subcategory=16&SortType=3&ResultsPerPage=10", true); 
xhr.onload = function() { 
    resp = JSON.parse(xhr.responseText); 
} 
xhr.send(); 

我試圖得到一些JSON數據。如果我用var resp = //(The actual JSON data itself)替換這部分代碼,那麼擴展工作得很好。

如何正確獲取此JSON數據,並且與任何下載我的擴展名的人保持緊密關係?

對不起,如果有明顯的答案,我還是新來的Javascript。

謝謝!

+1

'.onreadystatechange'而不是'.onload',並檢查xhr.readyState = 4和xhr.status == 200以檢查您何時有響應。 [MDN示例](https://developer.mozilla.org/es/docs/XMLHttpRequest/Usar_XMLHttpRequest#Example.3A_Asynchronous_request) –

+0

也許嘗試使用JSONP ...?不過,我不確定你可以在Chrome擴展程序中使用它。 – Atutouato

+0

IMO會使用jQuery或類似的方法(將這種複雜性從你身上抽象出來)更容易。 – datashaman

回答

0

嘗試設置內容類型。並非所有瀏覽器都使用相同的默認設置。

xhr.setRequestHeader("Content-Type", "*/*"); 
+0

這將有助於我的兼容性問題。在插入這一行時,我也意識到我的一個變量需要是全局的。簡單的錯誤往往是最難找到的! – DiamondBladee

相關問題