2

私はChrome拡張開発の初心者です。Chrome 開発者拡張機能(開発者ツールの一部として表示されます)を開発中です。 この要件は、同じサーバー(起点)にある場合とない場合がある外部サービス(URL)呼び出しを行うことです。私が参照しているドキュメントからは、同じ発信元ポリシーによって拡張機能が制限されることはありません。 https://developer.chrome.com/extensions/xhrCORS Chrome Developer Extensionの問題

しかし、外部サービスを呼び出す際にCORSの問題が発生しています。

Manifest.jsonは、以下のようになります。ここで、私はすべてのウェブサイトへのアクセス許可を持っています。私はいくつかのURLにHTTP POSTを呼び出すようにしようとしていたコードで

"permissions": [ 
     "tabs", 
     "clipboardWrite", 
     "http://*/*", 
     "https://*/*" 
    ], 

、コードが

gwUrl = 'http://services.odata.org/V2/(S(lts2i32bwwy01zoq4cxyscwt))/OData/OData.svc/Products'; 
var xhr = new XMLHttpRequest(); 
xhr.open("POST", gwUrl , true); 
xhr.setRequestHeader("Content-type", "application/json"); 
xhr.onreadystatechange = function() {} 
xhr.send({ "ID":17, "Name": "Bread", "Description": "Whole grain bread"});  

のように、私は次のエラーを取得しています見えます。

OPTIONSのhttp // services.odata.org/V2 /(S(lts2i32bwwy01zoq4cxyscwt))/のOData/OData.svc /製品501(未実装)

のXMLHttpRequestは、http //サービスをロードすることはできません。 odata.org/V2/(S(lts2i32bwwy01zoq4cxyscwt))/OData/OData.svc/Products。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。 Origin 'chrome-extension:// cdcbiglainpfeapfejdjdkldcehjakfi'はアクセスできません。応答にはHTTPステータスコード501が付きました。

Error Screenshot 誰でも問題を解決するためのガイドをしてください。

答えて

1

Access-Control-Allow-Originヘッダーを追加してみてください。応答ヘッダーは、応答が指定された起点のリソースと共有できるかどうかを示します。

Using CORSのチュートリアルも参照してください。このチュートリアルでは、すべての有効なCORS応答にAccess-Control-Allow-Originヘッダーを含める必要があると述べ、ヘッダーを省略するとCORS要求が失敗することになります。以下のSOの記事で与え

ソリューションも役立つかもしれない: