0

我想建立一個鉻擴展,我需要ping到不同的機器。我試過的代碼能夠讀取https站點的響應頭,但不是http.I是我新的Javascripting。任何幫助將是偉大的。我明白這是一個CORS問題,並嘗試在客戶端代碼中設置標題.many論壇提到它設置服務器端,但我可以在這種情況下做什麼?請在快照中找到下面的代碼以及https站點返回的插件UI和響應。問題與讀取響應頭

代碼 -

url="https://www.icicibank.com/"; 
//url = "www.rediff.com/"; 
ping = new XMLHttpRequest(); 
ping.open("get", url,true); 
//ping.setRequestHeader("Access-Control-Allow-Origin","*"); 
// ping.setRequestHeader("Access-Control-Allow-Credentials", "true"); 
ping.send(null) 
ping.onreadystatechange=function() { 
if (ping.readyState==4) { 
alert(ping.getAllResponseHeaders()); 
//alertify.alert(ping.getAllResponseHeaders()); 
} 
} 

由於

+0

您需要在目標服務器上處理[預檢請求](http://stackoverflow.com/a/8689332/4361743)。 – karman

回答

0

CORS確實服務器響應的一部分,不該請求。所以你不能「設置」它在你身邊。

但是,允許擴展繞過CORS限制和make cross-origin requests。但爲此,您需要列出您要連接的域名in manifest permissions。用戶在安裝時會收到警告,您將與這些域進行交互。

例如,允許請求http://example.comhttps://example.com域無論CORS的,你需要在清單包括:

"permissions" : [ 
    "*://example.com/" 
], 

如果你不能說你需要連接到哪個網站你需要權限所有的url(特殊權限,字面意思,"<all_urls>"),或者使用Optional Permissions在運行時請求。

+0

哇..謝謝你的幫助。我已經在權限下的清單中設置了「」,但它不起作用,但將其設置爲「可選」權限,對我來說也沒有任何警告。很多謝謝! –

+0

停止。認爲。這聽起來不對。 – Xan

+0

傳統權限覆蓋可選權限。一旦獲得授權,您的LOCAL安裝將授予他們 - 它將在您的安裝上工作,但如果您再次刪除並添加擴展,則停止工作。 – Xan