1
我最近在我的Web API控制器中實現了cors。我正在調用domain2上的客戶端上位於domain1上的Web API。Web API控制器不尊重CORS原點
對於原點,我指定了一個僞造的url。據我瞭解,只有來自此網址的電話纔會被接受。它是否正確?
從
http://notgoingtowork.com
因此,只有通話將能夠調用控制器,並返回數據
這是我控制器(域1)
public class TestController : ApiController
{
[EnableCors(origins: "http://notgoingtowork.com", headers: "*", methods: "*")]
public int Get()
{
return 1
}
}
,然後在我的其他領域,阿賈克斯電話(域2)
$.ajax({
url: "http://domain1/api/Test/Get",
method: "GET",
headers: { "accept": "application/json;odata=verbose" },
success: function (data){alert("it worked");},
error: function (error) { alert("Did not work"); }
})
但是,請求仍然成功並且正在返回數據。由於客戶不在'http://notgoingtowork.com'上,它怎麼能夠成功地做到這一點?我錯過了什麼?
我在IE11上這樣做。這對Chrome很有效。
編輯: 這裏是WebApiConfig.cs文件 這是很普通的。我只是說了一個Cors部分
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.EnableCors();
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
你覈實'data'值太?不只是'alert()' – 2014-10-07 19:57:24
是的。所有數據得到返回 – prawn 2014-10-07 19:58:01
你的'Startup.cs'中有任何東西可以啓用cors嗎? – Jonesopolis 2014-10-07 19:58:34