

お世話になります。

monacaで、Crosswalkプラグインを入れた状態で、  
サーバと通信すると、下記エラーが出てしまいました。

（できれば）サーバ側で何も設定すること無く、  
正常に通信をする方法はありますでしょうか。

===[エラー内容]===  
XMLHttpRequest cannot load <http://xxxx.xxx.jp/xxxx.php/xxxxx> . No 'Access-
Control-Allow-Origin' header is present on the requested resource. Origin
'file://' is therefore not allowed access.


CC BY-SA 3.0
2016-03-23T01:27:27.260
23361
2016-07-07T10:00:52.760
13702
question
monaca cordova
Crosswalkプラグイン利用時、サーバ通信ができない


残念ながら、Crosswalkプラグインの仕様上、サーバー側に

[code]

    Access-Control-Allow-Origin: file://
    
[/code]

や

[code]

    Access-Control-Allow-Origin: *
    
[/code]

の設定がないと、このエラーが出てしまうと思います。  
ビルドしたアプリでは、アプリのコード領域にindex.htmlがあるのでこのエラーが出ない  
のですが、Monacaデバッガーでは書き換え可能なファイル領域にindex.htmlがあるため、  
このエラーを避けられません。

この問題を解決するには、Crosswalkプラグイン側を改修する必要があります。試しに改修  
したものを  
<https://github.com/knight9999/cordova-plugin-crosswalk-webview>  
に用意しました。標準のCrosswalkプラグインを外して、こちらのプラグインを組み込み、  
カスタムビルド版デバッガーを作成すれば、カスタムビルド版デバッガー上ではエラーが出ず  
にサーバー通信を行うことが出来るようになります。

また、この改修は何らかの形で、次期Monacaデバッガー(6.0.x系)に取り込む予定です。


CC BY-SA 3.0
2016-07-07T10:00:52.760
27421
2016-07-07T10:00:52.760
8848
23361
answer