2014-12-03 102 views
1

當我通過使用計算機名稱的URL訪問ASP.net自託管web api 2時,出現400錯誤的請求錯誤。當我使用本地主機時,它工作正常。web api 2使用ip地址訪問主機時的錯誤請求

我知道這可以通過更新applicationhost.config解決IIS託管的網站,但我如何解決它在web-api 2?

回答

0

這裏的問題是,Web API認爲你是從一個不同的域訪問它,默認情況下這是不允許的。

這被稱爲Cross-origin resource sharingCORS)。

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 
+0

但如果多數民衆贊成的情況下安裝CORS包,錯誤應該是相關的到CORS'否'Access-Control-Allow-Origin'標題出現在請求的資源上。「或者其他像這樣,而不是'無效的主機' – harishr 2014-12-04 05:16:10

相關問題