簡體   English   中英

Access-Control-Allow-Origin不允許“Chrome擴展程序”的含義?

[英]Meaning of “Chrome-extension is not allowed by Access-Control-Allow-Origin”?

這是我第一次開發Google Chrome Extentions,我的目標是從我在本地計算機上托管的REST服務中檢索URL,並在彈出窗口中顯示...這是我使用的代碼:

<style>
body {
    min-width:357px;
    overflow-x:hidden;
}
</style>

<script>
var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://URLTORESTSERVICE/Items",
    true);
req.onload = showWorklistItems;
req.send(null);

function showWorklistItems() {
    var worklistitems = req.responseXML.getElementsByTagName("WorklistItem");
    for (var i = 0, wli; wli = worklistitems[i]; i++) {
    var link = document.createElement('a');
    link.setAttribute('href', constructWLIURL(wli));
    document.body.appendChild(link);
  }
}

function constructWLIURL(wli) {
    return "testing" + wli.getAttribute("SerialNumber");
}
</script>

但是執行時出現此錯誤:

XMLHttpRequest cannot load http://URLTORESTSERVICE/Items. Origin chrome-extension://caioejefhikijgcaondigdaaobomailk is not allowed by Access-Control-Allow-Origin.

你正在進行CORS或“跨域資源共享”。 http://enable-cors.org/是一個很好的資源。 它是由您的請求不是源自與數據服務相同的域引起的。

為了使您可以使用來自另一個域的ajax請求中的數據,您需要讓數據提供者在其http響應中添加類似於以下內容的CORS標頭。 (注意:JSONP雖然很危險,但可以解決這個問題。)

Access-Control-Allow-Origin: *

編輯:我看到你是數據提供者 - 輸出標題,你將被設置。

Access-Control-Allow-Origin是服務器發送(或不發送)的標頭。 某些瀏覽器(尤其是Chrome和Firefox)會在跨域請求中使用此標頭。 這意味着除非在該標頭中列出了原始域,否則瀏覽器將拒絕執行請求(或至少完全執行)。

您可以更改本地服務器以正確設置標頭,或者您可能以某種方式更改chrome的設置以停止將您正在執行的操作視為跨域請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM