ASP.NETサーバーがホストする角度のjs。 Web APIを呼び出しています。 POST Web APIをパラメータなしで実行すると、正常に動作します。しかし、POST Web APIにパラメータを渡すと、以下のエラーが発生します。 エラー: XMLHttpRequest
は、http://localhost:60117/api/Parts
をロードできません。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。したがって、Origin http://localhost:64658
はアクセスできません。
注:すでにコルナゲを有効にしています。 [EnableCors("*", "*", "*")]
webapiconfig.cs
var cors = new System.Web.Http.Cors.EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
後、私のリクエストヘッダである:
OPTIONS /api/Parts HTTP/1.1
Host: localhost:60117
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://localhost:64658
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Access-Control-Request-Headers: content-type
Accept: */*
Referer: http://localhost:64658/app/views/Index.html
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8
はmulitpleは動詞のエラーを受け入れる与え、その後、web.configファイル内のコードの下に行うとき。
<httpProtocol>
<customHeaders>
<clear/>
<add name="Access-Control-Expose-Headers " value="WWW-Authenticate"/>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, PATCH, DELETE"/>
<add name="Access-Control-Allow-Headers" value="accept, authorization, Content-Type"/>
<remove name="X-Powered-By"/>
</customHeaders>
</httpProtocol>
更新:
Now getting below request response message:
The requested resource does not support http method 'POST'.
AJAX呼び出し:
$http({
method: "POST",
url: config.APIURL + 'Parts',
data: {'final':'final'}
});
は、ここで私を助けてください。この問題に立ち向かいました。
すでにwebapiconfigでコアを有効にし、コントローラレベルでenablecoresを有効にしました。運はないが。 – dsi
あなたはヘッダ 'Access-Control-Allow-Origin'が足りません。リクエストレスポンスを追加して、より良い答えを与えることができます。設定コードがコメントアウトされているのがわかります。 ''コメント – maurycy
は、web.configにsystem.webserverを設定しました。 - ' PreflightレスポンスにおけるControl-Allow-Headers。 –
dsi