【发布时间】:2017-01-16 05:51:47
【问题描述】:
由 ASP.NET 服务器托管的 angular js。
调用 web api。
什么时候 POST web api 没有参数然后工作。但是当将参数传递给 POST web api 时,它会给出以下错误。
错误:
XMLHttpRequest 无法加载 http://localhost:60117/api/Parts。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin http://localhost:64658 因此不允许访问。
注意:已经启用 cors nuget。 [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
然后在 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'}
});
请帮帮我。被这个问题卡住了。
【问题讨论】:
标签: javascript angularjs ajax asp.net-web-api asp.net-web-api2