允许EnableCors()中的许多起源

时间:2017-01-19 14:12:13

标签: c# ajax asp.net-web-api cors

我有一个名为GetNames的GET方法的MVC Web API。

当我想从另一个网站的AJAX中调用myapi.com/controller/GetNames时,我收到Access-Control-Allow-Origin错误。

所以在我的MVC Web API代码中,

我在WebApiConfig中添加了这个:

  config.EnableCors();

我将其添加到我的Controller方法中:

[HttpGet]
[EnableCors(origins: "http://mywebsite.net", headers: "*", methods: "*")]
public string GetNames(string requestKey)

如果很多网站都在调用这种方法怎么办?

我想允许很多来源,如果我可以允许所有来源,而不仅仅是定义的,那就更好了。

1 个答案:

答案 0 :(得分:2)

来自EnableCorsAttribute的文档:

  

origin :允许访问资源的以逗号分隔的源列表。使用" *"允许所有人。

因此,对于原始列表,您的属性现在看起来像这样:

[EnableCors(origins: "http://site1.com,http://site2.com", headers: "*", methods: "*")]

或者这适用于所有来源:

[EnableCors(origins: "*", headers: "*", methods: "*")]