CORSリクエストの作成中に次のエラーが発生します。興味深いことに、これはサファリでは動作しますが、Google ChromeやFirefoxでは動作しません。私はすべてを見てきましたが、Web上には解決策が見つかりませんでした。
jsonをサーバーに送信しようとしていますが、サーバーに送信する前に文字列を作成する必要があるため、JSON.stringifyを使用していますが、最終的にはサーバーからjson結果を期待しています。
これは、私がカールコールになっているものです。
HTTP/1.1 200 OK
Date: Tue, 18 Apr 2017 15:13:04 GMT
Server: Apache
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST, OPTIONS
Access-Control-Max-Age: 21600
Content-Length: 213
Content-Type: application/json
(私は、ヘッダーを確認するためにそれを試してみました)、これは私はクローム
と私のコード
function foo(api_key, url, query, pdata, callback) {
var result = 'none';
if (typeof pdata != "undefined"){
var mydata = {"api_key": api_key, "query": query, "data": pdata };
}
else {
var mydata = {"api_key": api_key, "query": query};
}
$.ajax({
method : "POST",
url : url,
data: JSON.stringify(mydata),
contentType: "application/json;charset=UTF-8",
cache: false,
dataType: "json",
success : function(data) {
console.log("API call is working successfully!")
callback(data);
result = data
},
error: function(data, status, error) {
console.log("API call failed!")
}
});
return result;
}
最後の部分でネットワークタブ上で取得していますものです
これは私が得ているエラーです。
私は何をしなければならないのですか、変更したり、追加してChromeやFirefoxで動作させる必要がありますか?
あなたのバックエンドが要求 'のContent-type'がヘッダーについて好き嫌いではない場合、あなたは常にそれ*シンプル*要求を行う'テキスト/ plain'に設定することができ、したがって、プリフライトを回避'OPTIONS'リクエスト – Phil
あなたのオプションを' crossDomain:true'で更新してみてください。これは自動的に行うべきですが、失敗する可能性がありますか? –
今後参考になるかもしれませんが、コードのスクリーンショットや画像を単に投稿するのではなく、テキストのコンテンツを含めてください。 – Terry