1
當我通過使用計算機名稱的URL訪問ASP.net自託管web api 2時,出現400錯誤的請求錯誤。當我使用本地主機時,它工作正常。web api 2使用ip地址訪問主機時的錯誤請求
我知道這可以通過更新applicationhost.config解決IIS託管的網站,但我如何解決它在web-api 2?
當我通過使用計算機名稱的URL訪問ASP.net自託管web api 2時,出現400錯誤的請求錯誤。當我使用本地主機時,它工作正常。web api 2使用ip地址訪問主機時的錯誤請求
我知道這可以通過更新applicationhost.config解決IIS託管的網站,但我如何解決它在web-api 2?
這裏的問題是,Web API認爲你是從一個不同的域訪問它,默認情況下這是不允許的。
這被稱爲Cross-origin resource sharing
(CORS
)。
Web API 2.2
通過提供EnableCorsAttribute
可以很容易地啓用CORS
。
基本用法
[EnableCors("*", "*", "*")]
public class ResourcesController : ApiController
{
...
屬性定義
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = false)]
public EnableCorsAttribute(
string origins,
string headers,
string methods
)
您還需要從nuget
Install-Package Microsoft.AspNet.WebApi.Cors
但如果多數民衆贊成的情況下安裝CORS包,錯誤應該是相關的到CORS'否'Access-Control-Allow-Origin'標題出現在請求的資源上。「或者其他像這樣,而不是'無效的主機' – harishr 2014-12-04 05:16:10