真的和这个错误混淆了。带OWIN的Web API,预检请求返回OK,但实际请求返回405. PUT,DELETE不允许
我正在使用Web Api和OAuth进行用户验证。对网站的第一个请求是用户注册POST请求,它正确执行。 我发送第二请求是使用用户凭据PUT请求以激活用户,为此,预检请求返回OK
但实际PUT请求返回不携带405
方法和No Access-Control-Allow-Origin
首标出现错误。
托管前一切正常。此错误仅在托管API中发生。我还用localhost:portNo/api
(即在本地主机上运行api并从托管客户端应用程序访问它)检查了托管客户端,并且它工作正常。错误仅在托管应用程序中发生。
预检请求如下:
Request URL: api.oorvalam.com/user/activate Request Method:OPTIONS Status Code:200 OK
预检响应如下:
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
实际响应如下:
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
供参考:客户端是用角度制作的。也删除了一些链接http,因为stackoverflow不允许我。
请让我知道如果有什么我错过了关于CORS。并详细说明为什么它在本地工作,而不是在Hosted api中工作。