インターネットでこのメソッドを見つけました:
$.ajax({
},
});
ただし、プロンプト:
リクエスト ヘッダー フィールド Access-Control-Allow-Origin は、プリフライト応答の Access-Control-Allow-Headers によって許可されていません。
すでに PHP コードにある Access-Control-Allow- Headers の値が * に設定されていますが、それでもエラーが報告されます。解決策はありますか?
インターネットでこのメソッドを見つけました:
$.ajax({
},
});
ただし、プロンプト:
リクエスト ヘッダー フィールド Access-Control-Allow-Origin は、プリフライト応答の Access-Control-Allow-Headers によって許可されていません。
すでに PHP コードにある Access-Control-Allow- Headers の値が * に設定されていますが、それでもエラーが報告されます。解決策はありますか?
まず、preflight
問題が発生する理由について説明します。それは、リクエストが「単純なリクエスト」ではなくなっているためです。クロスドメインの問題では、特定の条件を組み合わせたリクエストが「単純なリクエスト」と呼ばれることがあります。簡単なリクエスト』 条件は以下の通りです
リクエスト タイプは GET
,POST
,HEAD
3 つのうちの 1 つである必要があります
リクエスト ヘッダー (Header) には以下のみを含めることができます:
受け入れる
言語を受け入れる
コンテンツ言語
最後のイベントID
コンテンツタイプ: application/x-www-form-urlencoded、multipart/form-data、text/plain のみを受け入れます
あなたの問題は、明らかに、ヘッダー Access-Control-Allow-Origin
を追加したため、リクエストが「単純ではなくなった」ことです。リクエストが単純でない場合、ブラウザはセキュリティ上の理由から、いわゆる Access-Control-Allow-Origin
,导致请求变得“不简单”了。当请求不简单时,浏览器处于安全原因,会先发送一个所谓的preflight
请求,方法为OPTIONS
リクエストを最初に送信します。メソッドは OPTIONS
です
クロスドメインの詳細については、パブリック API と CORS の構築を読むことをお勧めします
ご質問はわかりました。冗長なものを削除すれば大丈夫ですheader