私はこの問題について何時間も探していましたが、これに対する解決策はまだ見つかりません。
アプリコルドバ(基本的にHTML/JS)を開発しているので、アプリはナビゲーターからモバイルで実行され、APIにajaxリクエストを送信するのに問題があります: https://developer.riotgames.com/ しかし、Googleページを取得したいだけだとしましょう。
一体どうやってそれをするのですか、これも可能ですか?以下に簡単な例を示します。
$.ajax({
type: "GET",
url: "https://google.com",
dataType: "text",
success: function(response){
alert("!!!");
},
error: function(error){
alert("...");
}
});
私は同じエラーを何度も繰り返しています:
XMLHttpRequestはロードできません https://google.com/ 。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン「null」はアクセスを許可されていません
Originの「null」は、コードをfile:///D:/Projets/LoL/www/index.html
から実行し、ナビゲーターがブロックしていることを読んだためですが、--disable-web-security
でセキュリティを無効にするとうまくいきません。もちろん、参加したいサーバーにアクセスできません。
ご協力ありがとうございました!
Cordovaホワイトリストプラグインが必要です: https://cordova.Apache.org/docs/en/latest/reference/cordova-plugin-whitelist/ 。
Config.xmlでこれを用意します。
<access Origin="*" />
<allow-navigation href="*"/>
また、index.htmlにContent-Security-Policyメタがあります。何かのようなもの:
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data:">
2019年8月1日以降に問題が発生した場合。この Access-Control-Allow-Origin Error ..(using cordova) は、問題に関連している可能性があります。
私の問題を解決したノードjsサーバーに以下を追加しました。
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
これは、nodejsを使用している場合に役立ちます。
ありがとう