私はデータを投稿しようとするとブラウザ(chrome)がOPTIONSリクエストを自動的に送信しますが、このリクエストはIIS express(Visual Studioのローカル開発者)によって401になるため、現在私の頭を傷つけています。問題は断続的でしたが、今はいつも起こっているように見えますが、私はそれを引き起こしている何かの手がかりを持っています。オプションは401を取得しますが、Fiddlerを使用する場合は表示されません。
私は奇妙な結果を得ましたが、自分自身で問題を解決しようとしました...私はフィドラーをオンにして、突然OPTIONS要求が問題なく通過します。要求の唯一の違いは次のとおりです。
OPTIONS /api/users/skill HTTP/1.1
Host: localhost:65121
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: PUT
Origin: http://localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
Access-Control-Request-Headers: accept, content-type
Accept: */*
Referer: http://localhost:3000/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
I、すなわち、これはヘッダ内の情報が異なる場合の>異なるタグ<、
<this is different>the header info here has changed</this is different>
を使用してい
(バイオリン弾きWITHOUTオプションヘッダ)
(OPTIONS HEADER WITHバイオリン弾き)
OPTIONS <this is different>http://localhost:65121</this is different>/api/users/skill HTTP/1.1
Host: localhost:65121
<this is different>Proxy-</this is different>Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: PUT
Origin: http://localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
Access-Control-Request-Headers: accept, content-type
Accept: */*
Referer: http://localhost:3000/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
2つの要求の唯一の違いは、これまでプロキシ経由でAPI呼び出しを理由何のための接続に使用diferentヘッダを持っていることであり、それはのように完全修飾アドレスを送信オプション要求の一部それは言われていますが、どちらもAPIのポートに移動します。
これまで経験したことがある人や、ミドルにプロキシを置くとどうしてそれが壊れているのか考えている人はいますか?
web.configファイル - >http://pastebin.com/CgWVzAvm
APIを使って何をしようとしていますか? 'OPTIONS'はどのメソッドが許可されているか(そして私が知っている限り、それは非常にまれにしか使われていません)サーバに尋ねるために使われます。このリクエストをブラウザでどのように作成していますか?あなたは特に 'OPTIONS'を使いたいですか? (または実際に 'GET' /' POST'/etcをやろうとしていますか?) – Rob
私はAngularのHTTPモジュールからAJAX呼び出しを行っています。 HTMLを提供したものと一致しない原点へのPOSTリクエストであるため、ブラウザは自動的にOPTIONSリクエストを送信します。私の研究の中で何らかの理由でAPIサーバがAuthヘッダを含んでいないので、OPTIONSコールは辞退していますが、仕様+クローム実装では許可されていないため、認証ヘッダーを追加できません。 –