Monaca にてCordovaアプリを開発しています。
iOSのUIWebViewからWKWebViewへ変更したところajaxができなくなってしまいました。
PHP製のAPIへPOSTし結果をJsonでもらう仕様なのですが
$.getJSONでは今まで通りデータを取得できますが$.ajaxではajax がfailになってしまいます。
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
PHPには
header("Access-Control-Allow-Origin: *");
を入れています。
Cordovaのプラグインは
cordova-plugin-wkwebview-engine
cordova-plugin-wkwebview-file-xhr
を入れています。
解決法をご存じの方はご教授いただきたいです。
JavaScript
1//$.getJSONだとうまくいく 2var url = "http://xxxx.jp"; 3$.getJSON(url, function (data) { 4 console.log(JSON.stringify(data)); 5}); 6 7//$.ajaxはうまくいかない 8var url = "http://xxxx.jp"; 9$.ajax({ 10 type: "POST", 11 url: url, 12 data: JSON.stringify(data), 13 cache: false, 14 contentType: false, 15 processData: false, 16 contentType: 'application/json' 17}) 18.done(function (data, textStatus, jqXHR) { 19 console.log(JSON.stringify(data)); 20}) 21.fail(function (jqXHR, textStatus, errorThrown) { 22 console.log(JSON.stringify(jqXHR)); 23});
ajaxのオプションのcontentTypeを'application/json'から'text/plain'に変更したところ正常に通信が行えました。
CORSの制約に引っかかっているような気がするのですがPHPサイドのheader("Access-Control-Allow-Origin: *");だけではだめという事なのでしょうか。。。
回答1件
あなたの回答
tips
プレビュー