2016-05-23 10 views
8

この問題で何時間も検索していますが、これについての解決策はまだ見つかりません。CORS + Cordova:with:Access-Control-Allow-Origin

私は (basicely HTML/JS)のAppコルドバの研究開発をしていますので:アプリはナビゲータから、モバイル上で動作する、と私はトラブル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 cannot load https://google.com/ . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access

起源を私はからコードを実行されるので、「ヌル」である:file:///D:/Projets/LoL/www/index.htmlと私はことを読んでここ は簡単exempleですナビゲータがブロックしていますが、セキュリティを無効にするとうまく動作しません--disable-web-security もちろん、参加したいサーバーにアクセスできません。

ありがとうございました!

+1

[XmlHttpRequestのエラー:原点nullがアクセス制御 - 許可 - 起源によって許可されていません]の可能な重複(http://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null- allow-by-access-control-allow-origin)を使用します。私はJSONPでいくつかの読書をすることをお勧めしますが、一般的にあなたがサーバーを変更できない場合、あなたがしたいことをする良い方法はありません。 – CollinD

答えて

9

コルドーバホワイトリストプラグインが必要です:https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/

は、config.xmlでこれを持っている:

<access origin="*" /> 
<allow-navigation href="*"/> 

そしてindex.htmlの中のContent-セキュリティポリシーメタを持っています。次のようなものがあります。

<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:"> 
+2

私はブラウザとして走っても動作しません。 私はまだ持っています: "クロスオリジン要求がブロックされました:同じオリジンポリシーは、http:// localhost:7788/testActionでリモートリソースを読み取れません。これは、リソースを同じドメインに移動するか、CORSを有効にすることで修正できます。 – Emiter

+0

私は、CORSがメタタグで有効になっているテストアプリケーションを作成しましたが、それは私が読んでいた(残念なことに私は場所を思い出すことができません)デスクトップにではなく、自分の電話機に展開したときにのみ機能しました。 – nmcilree

0

次のようにnodjsサーバーに追加して問題を解決しました。

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(); 

});

これは、nodejを使用している場合に役立ちます。

おかげ

関連する問題