2013-07-28 123 views
0

我正在爲第一次編碼擴展。很好地閱讀他們的文檔,特別許可部分。Chrome擴展許可XMLHttpRequest

我想加載一個JSON響應從我的本地主機與特定的端口前。 3000

我更新了我的mainfest.json和persssion節就像是

"permissions": [ 
    "http://localhost:3000/*" 
    ], 

但要XMLHttpRequest cannot load http://localhost:3000/project/data.json Origin null is not allowed by Access-Control-Allow-Origin.

看來我失去了一些東西。

我錯過了什麼?

+0

看起來不錯。添加權限後是否重新加載了擴展名? AJAX代碼是否在擴展的進程或內容腳本中運行? –

+0

yes,reloaded .. – arnold

回答

0

你可以嘗試以下任何解決方案:

  1. 以下行添加到您的清單文件的末尾:

    "content_security_policy": "script-src 'self' http://localhost:3000; object-src 'self'" 
    
  2. 相反的localhost,請嘗試使用該地址而不是即127.0.0.1

希望它有幫助。

+0

它沒有幫助 – arnold

0

如果您的請求被髮送到與其他端口相同的主機,那麼這已經是一個跨域請求(請參閱http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules)。不允許跨域ajax請求。 有兩種解決方案:

  1. 使用JSONP請求。
  2. 要添加到響應標頭,請執行以下操作:Access-Control-Allow-Origin:*但並非所有瀏覽器都支持此功能。

請參閱:

+1

儘管此信息與普通網頁相關,但與Chrome擴展開發無關,因爲Chrome擴展可以[放寬同源策略](https:// developer .chrome.com /擴展/ xhr.html)。這個問題試圖在Chrome擴展中嘗試使用此功能。 – apsillers