真的和這個錯誤混淆了。帶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中工作。