[解決済み] ChromeのAJAXはGET/POST/PUT/DELETEではなくOPTIONSを送信しますか?
質問
私は職場で内部ウェブアプリケーションに取り組んでいます。IE10 では、リクエストは問題なく動作しますが、Chrome では、すべての AJAX リクエスト (多数あり) が、私がそれを与えるどんな定義されたメソッドの代わりに、OPTIONS を使用して送信されます。技術的には、私のリクエストはクロスドメインです。 この閉鎖された jquery のバグ は問題を定義していますが、本当の修正ではありません。
ajaxリクエストで適切なhttpメソッドを使用するには、どうすればよいですか?
編集してください。
これは、すべてのページのドキュメントロードにあります。
jQuery.support.cors = true;
そして、すべてのAJAXは同じように作られています。
var url = 'http://localhost:57124/My/Rest/Call';
$.ajax({
url: url,
dataType: "json",
data: json,
async: true,
cache: false,
timeout: 30000,
headers: { "x-li-format": "json", "X-UserName": userName },
success: function (data) {
// my success stuff
},
error: function (request, status, error) {
// my error stuff
},
type: "POST"
});
どのように解決するのですか?
Chrome はリクエストのプリフライトで CORS ヘッダを探します。リクエストに問題がない場合は、実際のリクエストが送信されます。もしこれをクロスドメインで行っている場合は、単にこれに対処するか、クロスドメインでないリクエストを行う方法を見つける必要があります。これが、jQueryのバグがwon't-fixとしてクローズされた理由です。これは設計によるものです。
単純なリクエスト(上述)とは異なり、"preflighted" リクエストは最初に OPTIONS メソッドで HTTP リクエストを送信します。 実際のリクエストが安全かどうかを判断するために、他のドメインのリソースに を送信します。 クロスサイトリクエストは、ユーザーデータに影響を与える可能性があるため、このようにプリフライトされます。 は、ユーザーデータに影響を与える可能性があるため、このようにプリフライトされます。 特に、リクエストは プリフライトされるのは
- GET、HEAD、POST 以外のメソッドを使用している。 また、POST を使用してリクエストデータを送信する際に、Content-Type が application/x-www-form-urlencoded, multipart/form-data, または text/plain 以外の Content-Type を持つリクエストデータを送信するために POST が使用されている場合。 例えば、POST リクエストが XML ペイロードをサーバーに送信する場合、application/xml または text/xml を使用します。 を使用してサーバーに送信する場合、そのリクエストはプリフライトされます。
- リクエストにカスタムヘッダを設定します (例: リクエストが X-PINGOTHER のようなヘッダを使用する場合)。
関連
-
[解決済み] jest.fn()の値はモック関数またはスパイである必要があります。
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み] Ajaxリクエストが200 OKを返すが、successではなくerrorイベントが発生する
-
[解決済み] PUT、DELETE、HEADなどのメソッドは、ほとんどのウェブブラウザで利用可能ですか?
-
[解決済み] jQueryでPUT/DELETEリクエストを送信する方法は?
-
[解決済み] ajaxポストからのファイルダウンロードを処理する
-
[解決済み] .text()を使って子タグにネストされていないテキストのみを取得する方法
-
[解決済み] FirefoxでjQuery $.ajax(), $.post がREQUEST_METHODとして "OPTIONS "を送信する問題
-
[解決済み】PHPによるjQuery Ajax POSTの例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Chromeの同一生成元ポリシーを無効にする
-
[解決済み] jQuery データ属性の値に基づいて要素を検索する方法は?
-
[解決済み] jQuery 複数のイベントで同じ関数を起動する
-
[解決済み] GoogleのホストされたjQueryを使用する最良の方法、しかしGoogleの私のホストされたライブラリにフォールバックすることは失敗します。
-
[解決済み] jQueryを使って「Please Wait, Loading...」というアニメーションを作成するにはどうすればよいですか?
-
[解決済み] jQuery UI DatePicker - 日付フォーマットの変更
-
[解決済み] jQueryを使用してCSSのdisplay noneまたはblockプロパティを変更するにはどうすればよいですか?
-
[解決済み] jQueryでloading spinnerを表示するには?
-
[解決済み] セレクトボックスの選択項目を設定する
-
[解決済み] jQuery append() - 追記された要素を返す