我有一个带有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: "*")]