これについていくつかの助けを探しています。私はアプリが内部的なものであるので私が共有できるものにいくぶん限定されています...IIS HTTPエラー400(無効な動詞) - 破損した要求ですか?
シナリオ:Webアプリケーションは、/ api/shortLinkエンドポイントに対して、短いリンクを返すようにPOST要求を出します(URL短縮サービス)。 BIアプリケーション内のダッシュボードです。ショートリンクはパラメータ/フィルタ値を保存するので、ユーザーは短いリンクを使用して同じビューに戻ることができます。
ショートリンクサービスは、通常の200ステータスとショートリンクコードを返します。すべてはうまいですよね?そうではありません。ページからの次のHTTPリクエスト(GET、POST、重要ではありません)はHTTP 400エラー(無効な動詞)になります。
問題はChrome(最新のビルド)でのみ発生しています。 Firefox、IE11、Vivaldi、Safariはすべて正常に動作します。 (ショートリンク値を取得する
最初のポスト要求は、ショートリンクが生成されて返され、正常に動作します:
Request:
POST http://jaxbamaptst1:8000/api/shortlink/?sessionId=4ea65890-dbb2-4757-8f03-c0e3bf306cdf HTTP/1.1
Host: jaxbamaptst1:8000
Connection: keep-alive
Content-Length: 18192
Pragma: no-cache
Cache-Control: no-cache
Accept: */*
Origin: http://jaxbamaptst1:8000
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
Content-Type: application/json; charset=UTF-8
Referer: http://jaxbamaptst1:8000/Dashboard/1e4ce64e-31e7-4f9e-96aa-8b9e546ba5c8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: webapp_sessionid=4ea65890-dbb2-4757-8f03-c0e3bf306cdf; webapp_clientid=27271080-59a9-4c3c-aaef-d8c489414165
"/Dashboard/41c892a0-d83c-4d98-beaa-cee8c656c727?e=false&vo=viewonly&overrides=eyJfX2NsYXNzVHlwZSI6ImR1bmRhcy52aWV3LmNvbnRyb2xzLlZpZXdPdmVycmlkZXMiLCJ2aWV3UGFyYW1ldGVycyI6W10sImRlZmF1bHRWaWV3UGFyYW1ldGVyVmFsdWVzIjpbeyJ2aWV3UGFyYW1ldGVyTmFtZSI6InBhcmFtQ3VycmVudE9yZyIsInBhcmFtZXRlclZhbHVlIjp7Il9fY2xhc3NUeXBlIjoiZHVuZGFzLmRhdGEuQ29sbGVjdGlvbk1lbWJlclZhbHVlIiwidmFsdWVzIjpbeyJfX2NsYXNzVHlwZSI6ImR1bmRhcy5kYXRhLkhpZXJhcmNoeU1lbWJlciIsImNvbXBhdGlibGVVbmlxdWVOYW1lIjoiW0RpbSBFbXBsb3llZV0uW0N1cnJlbnQgT3JnLUNlbnRlci1VTS1UTS1BZ2VudF0uW0NlbnRlcl0uJltSXSZbQ01DXSZbS05YQ01DXSIsImhpZXJhcmNoeVVuaXF1ZU5hbWUiOiJbRGltIEVtcG<<snip rest of overrides. Very lengthy>>
応答は、通常であり、所望のショートリンクを返します:いいえ、今
HTTP/1.1 200 OK
Cache-Control: no-store, must-revalidate, no-cache, max-age=0
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Vary: Accept-Encoding
Access-Control-Allow-Origin: *
Date: Fri, 30 Sep 2016 02:44:21 GMT
Content-Length: 28
"saqecfh3x14wmygknpqnzxwt3w"
を次の呼び出しがページから来たものであれば、結果はHTTP 400 - 無効な動詞になります
Chromeでは要求は完全に正常ですが、それはフィドラーでは、物事は少し奇妙取得..
はここで失敗リクエストです:
JSZVVUAXF1ZU5HBWUIOIJBRGLTIEVTCGXVEWVLXS5BQ3VYCMVUDCBPCMCTQ2VUDGVYLVVNLVRNLUFNZW50XS5BT3JNYW5PEMF0AW9UXS4MW1JDJLTDTUNDIIWIAGLLCMFYY2H5VW5PCXVLTMFTZSI6ILTEAW0GRW1WBG95ZWVDLLTDDXJYZW50IE9YZY1DZW50ZXITVU0TVE0TQWDLBNRDIIWIY2FWDGLVBII6IKNNQYISIMXLDMVSV<<snipped for brevity>>SBGFWC2VKIJPMYWXZZSWIY2HPBGRJDGVTQ291BNQIOJASINVUAXF1ZU5HBWUIOIJBRGLTIGET http://jaxbamaptst1:8000/Link/?shortLink=saqecfh3x14wmygknpqnzxwt3w HTTP/1.1
Host: jaxbamaptst1:8000
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://jaxbamaptst1:8000/Dashboard/1e4ce64e-31e7-4f9e-96aa-8b9e546ba5c8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: webapp_sessionid=4ea65890-dbb2-4757-8f03-c0e3bf306cdf; webapp_clientid=27271080-59a9-4c3c-aaef-d8c489414165
注符号化されたデータ(または文字化け虚無の?)「GET」動詞の前に。 Chromeはすべてのように見えるIISがエラーを返して400
ことは驚くべきことではない(400応答を除く)もあった。
Request URL:http://jaxbamaptst1:8000/Link/?shortLink=saqecfh3x14wmygknpqnzxwt3w
Request Method:GET
Status Code:400 Bad Request
Remote Address:127.0.0.1:8888 <<due to Fiddler proxy>>
はこれまで、このようなものを見ましたか?
また、脇に - 私たちは内部的なので、通常このアプリではSSLを使用しません。しかし、SSLを使用してアクセスするとエラーは発生しないことに気付きました。
2番目のリクエストはGETを試みるように見えますが、リクエストをAPIにPOSTしないように見えます。通常、エンドポイントはセキュリティ上の理由からGET要求を拒否します。 – Franco
フランコに感謝します。ここでGETが期待されます。 APIエンドポイントではありません。これは、ショートリンクページに移動しようとする試みです。 –