2011-05-12 50 views
0

我正在寫一個擴展(我的第一個想要的,也是我不熟悉的JS,實際上這是我的第一個項目在語言中)。而我 在使用XHR背景頁面獲取URL時遇到問題。在Chrome擴展的後臺頁面中執行一些XHR時獲取狀態碼0和空數據

我得到的狀態碼是0,沒有來自請求的數據。 奇怪的是,當我使用Wireshark(嗅探由Chrome發送的包 )時,我得到的數據OK並且狀態碼爲200.在 以下,您會看到我的清單文件和代碼。我基本上是複製的代碼 形式的內容腳本文件頁面鏈接:

http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/howto/contentscript_xhr/

我已閱讀,有時會發生,當你沒有在manifest.json中的權限說明,但我覺得他們都OK。先謝謝你。

繼承人的清單:

manifest.json的

{ 
    "name": "XXXXX", 

"version": "0.1", 
"description": "test extension", 


"browser_action": { 
"default_icon": "icon.png", 
"popup": "popup.html" 
}, 
"content_scripts": [ 
{ 
    "matches": ["http://*.amazon.com/*"], 
    "js": ["jquery.js", "content.js"] 
} 
], 

"background_page": "background.html", 
"permissions": [ 
"tabs", 
"http://finance.yahoo.com/*", 
"http://*.amazon.com/" 
] 
} 

background.html

function fetchCurrency(callback) { 
    var invocation = new XMLHttpRequest(); 
    var url = 'http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=l1&s=USDCOP=X'; 

    invocation.onreadystatechange = function(data) { 
    alert('Invocation Ready State: ' +invocation.readyState); 
    if (invocation.readyState == 4) { 
     alert('Invocation Status: ' + invocation.status); //shows 0!! 
     if (invocation.status == 200) { 
     var data = invocation.responseText; 
     alert('The data es ' + data); 
     callback(data); 

     } else { 
     callback(null); 
     } 
    } 
    } 
invocation.open('GET', url, true); 
invocation.send(); 
}; 

function onRequest(request, sender, callback) { 
    if (request.action == 'getRate') { 
    fetchCurrency(callback); 
    } 
}; 

// Wire up the listener. 
chrome.extension.onRequest.addListener(onRequest); 


/* 
    I then connect the content script as exemplified in the link I 
posted. All is working OK but I am getting a weird 0 status code :'(
*/ 

回答

1

在您的清單試試這個:

"http://*.finance.yahoo.com/*" 
+0

謝謝。有效!!! :-D。我認爲它必須是確切的主人。這不是一個鉻錯誤?或者我誤解了整件事情? – mfcabrera 2011-05-12 14:56:53

+0

你有什麼工作,但'download.finance.yahoo.com'算作差異。域。 – mattsven 2011-05-12 15:36:39

+0

是的...這是一個愚蠢的錯誤...我只是意識到它是下載.finance.yahoo.com不finance.yahoo.com X - D。謝謝:D。 – mfcabrera 2011-05-12 16:05:40

相關問題