2014-10-07 28 views
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 } 
     ); 
    } 
} 
+0

你覈實'data'值太?不只是'alert()' – 2014-10-07 19:57:24

+0

是的。所有數據得到返回 – prawn 2014-10-07 19:58:01

+0

你的'Startup.cs'中有任何東西可以啓用cors嗎? – Jonesopolis 2014-10-07 19:58:34

回答

0

有一個設置在IE 11「跨域訪問數據源」,確保它是否被禁用: enter image description here