HTTP标头Access-Control-Allow-Origin中是否有允许的最大起源数?

时间:2013-11-13 14:29:01

标签: asp.net ajax http asp.net-web-api cors

我在不同的域名中有大约130个白标网站,但每个网站上的表单都需要发布到一个共同的终点。我正在尝试通过使用跨源请求共享来实现此目的。

考虑到安全性,我不想使用..

Access-Control-Allow-Origin: *

因此,我正在尝试创建一个以逗号分隔的域名列表,即..

Access-Control-Allow-Origin: http://www.myfirstdomain.com,http://www.myseconddomain.com....

为了在后端实现这一目标,我已经设置了ASP.Net Web API解决方案,并尝试使用 System.Web.Http.Cors 库来实现上述目标。在'application start'上定义这些域。

我的'应用程序启动'代码如下所示..

public static void Register(HttpConfiguration config)
    {
        var domains = "http://www.myfirstdomain.com,http://www.myseconddomain.co.uk .... about 130 domains more..";
        config.EnableCors(new EnableCorsAttribute(domains, "*", "*"));

我正在测试它的域是大约110个域到逗号分隔列表中,当我尝试jQuery ajax帖子时,它首先按预期调用OPTIONS方法(以确定请求是否允许)但是这会返回Access-Control-Allow-Origin不允许使用原点http://www.mytestdomain.com

但是,如果我将逗号分隔的字符串修改为仅包含我的域,甚至两个或三个域,OPTIONS将返回200响应,因此允许POST。

有谁知道这是预期的行为还是可以看出我哪里出错?

1 个答案:

答案 0 :(得分:2)

解决方案是我的数据库中有一个带有尾随空格的流氓域。因此,当传递到EnableCorsAttribute时会导致问题,因此请小心数据!