2016-09-19 4 views
0

このエラーは本当に混乱します。Web API with OWIN、プリフライトリクエストはOKを返しますが、実際のリクエストは405を返します。PUT、DELETEは許可されていません

ユーザー認証にWeb ApiとOAuthを使用しています。サイトへの最初の要求は、正しく実行されるユーザー登録のPOST要求です。 私が送信する2回目のリクエストは、ユーザーの資格情報を使用してPUTリクエストをアクティブにすることです。プリフライトリクエストはOKを返しますが、実際のP​​UTリクエストは405メソッドが許可されず、いいえAccess-Control-Allow-Originヘッダーが存在します。
ホスティングする前にすべてうまく動作します。このエラーは、ホストされたAPIでのみ発生します。また、localhost:portNo/apiでホストされているクライアントを確認しました(つまり、ローカルホストでapiを実行し、ホストされているクライアントアプリケーションからアクセスしました)。ホストされているアプリケーションでのみエラーが発生します。 が
Accept:/ Accept-Encoding:gzip, deflate, sdch Accept-Language:en-US,en;q=0.8,ta;q=0.6 Access-Control-Request-Headers:content-type, userlanguage Access-Control-Request-Method:PUT Cache-Control:no-cache Connection:keep-alive Host:api.oorvalam.com Origin: http://web.oorvalam.com Pragma:no-cache Referer:web.oorvalam.com/setPassword
実際の要求は:
Request URL:api.oorvalam.com/user/activate Request Method:PUT Status Code:405 Method Not Allowed
実際の応答は以下の通りである:次のように
Request URL: api.oorvalam.com/user/activate Request Method:OPTIONS Status Code:200 OK
プリフライト応答は次のよう

プリフライト要求がある
Allow:GET, HEAD, OPTIONS, TRACE Cache-Control:private Content-Length:5293 Content-Type:text/html; charset=utf-8 Date:Mon, 19 Sep 2016 13:30:09 GMT Server:Microsoft-IIS/8.5 X-Powered-By:ASP.NET X-Powered-By-Plesk:PleskWin

FYI:クライアントは角張って作られています。また、stackoverflowが私に許可していないので、いくつかのリンクhttpを削除しました。

CORSに関して私が忘れたことがあれば教えてください。そして、なぜそれが地方で働いていて、Hosted APIで働いていないのかを精緻化する。

答えて

0

多くを検索した結果、これはweb.configの設定に関連するエラーであることがわかりました。

答えは
https://stackoverflow.com/a/19722942/5003227

この回答に似て、次のようにweb.configファイルで私の最後の<web.server>は次のとおりです。私はこの設定を追加するまで

<system.webServer> 
<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="WebDAVModule"/> 
</modules> 
<handlers> 
    <remove name="OPTIONSVerbHandler"/> 
    <remove name="TRACEVerbHandler"/> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
<httpErrors errorMode="Detailed"></httpErrors> 
<asp scriptErrorSentToBrowser="true"></asp> 

PUT、DELETEは許可されませんでした。

関連する問題