在 EnableCors() 中允许多个来源

Posted

技术标签:

【中文标题】在 EnableCors() 中允许多个来源【英文标题】:Allow Many Origins in EnableCors() 【发布时间】:2017-06-04 06:36:31 【问题描述】:

我有一个名为 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)

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

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

【问题讨论】:

* 用于origins 【参考方案1】:

来自EnableCorsAttribute上的文档:

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

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

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

或者这个适用于所有来源:

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

【讨论】:

以上是关于在 EnableCors() 中允许多个来源的主要内容,如果未能解决你的问题,请参考以下文章

Java - 为什么 Java 中允许多个全类名相同但类加载器不同的类存在?

在macos中允许未经验证来源应用运行的设置

在 Django 中允许每个用户生成 1 个视图

在我的 API 中允许 Origin [重复]

在access中,一个数据库中允许有多张表

MongoDB的体系结构理解