我有一个带有GET方法的MVC Web API,称为GetNames。

当我想从另一个网站的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)


如果许多网站都在调用此方法怎么办?

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

最佳答案

EnableCorsAttribute的文档中:


  origins:以逗号分隔的允许访问资源的来源列表。使用“ *”允许全部。


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

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


或针对所有来源:

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

09-25 17:40