ホームページ >バックエンド開発 >PHPチュートリアル >javascript - jqueryはpostメソッドを使用してデータをリクエストします。ヘッダーにパラメータを渡すにはどうすればよいですか?

javascript - jqueryはpostメソッドを使用してデータをリクエストします。ヘッダーにパラメータを渡すにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-08-04 09:20:581249ブラウズ

インターネットでこのメソッドを見つけました:
$.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 問題が発生する理由について説明します。それは、リクエストが「単純なリクエスト」ではなくなっているためです。クロスドメインの問題では、特定の条件を組み合わせたリクエストが「単純なリクエスト」と呼ばれることがあります。簡単なリクエスト』 条件は以下の通りです

リクエスト タイプは GETPOSTHEAD 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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。