我在不同的域名中有大约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。
有谁知道这是预期的行为还是可以看出我哪里出错?
答案 0 :(得分:2)
解决方案是我的数据库中有一个带有尾随空格的流氓域。因此,当传递到EnableCorsAttribute时会导致问题,因此请小心数据!