Google Chrome用のシンプルな拡張機能を作成しましたが、辞書APIにアクセスする際に問題があります。 APIは、拡張機能を実行するドメインとは異なるドメインで動作します。 このトピックのすべてのStackOverflowスレッドを読みましたが、この問題を解決できませんでした。Google Chrome拡張機能クロスドメインXMLHttpRequest
私はアクセス許可にAPIのアドレスを追加しました。それは機能していなかったので、私はhttp://*/*
によってテストの目的のためにそれを交換しました。私は、API呼び出しを行うするJavascriptの機能がある
{
"name": "web2memrise",
"version": "0.3",
"manifest_version": 2,
"permissions": ["http://*/*"],
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["jquery.min.js", "contentscript.js"],
"css": ["style.css"]
}],
"web_accessible_resources": ["script.js", "jquery.min.js"]
}
:私は、次のmanifest.json
を持って
function translateCallback(json){
var translations = "";
for(var phrase of json){
translations += ", "+phrase.text;
}
translations = translations.substring(2).replace(", ", "\t")
popupContent(translations)
}
function translate(l1, l2, phrase){;
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://deu.hablaa.com/hs/translation/"+phrase+"/"+l1+"-"+l2+"/", true);
xhr.onreadystatechange = translateCallback
xhr.send();
}
しかし、それは私に次のエラー与える:
home:19 GET http://nxtck.com/as.php?zid=48360&clbk=nextperf net::ERR_BLOCKED_BY_CLIENTloadScript @ home:19window.onload @ home:37
(index):1 XMLHttpRequest cannot load http://deu.hablaa.com/hs/translation/solution/fra-eng/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.lefigaro.fr' is therefore not allowed access.
script.js:44 Uncaught TypeError: json[Symbol.iterator] is not a function