是否可以通过使用CNAME记录来允许跨域请求?

5 ajax cname cross-domain

我知道有很多跨域问题,但我找不到我想要的东西.

我想从a.com向b.com提出客户端AJAX请求,这显然是不允许的.我想如果我创建了一个bacom - > b.com CNAME记录,那么浏览器就会允许这个请求,因为这意味着拥有a.com域名的人想要明确允许对b.com的请求,但我仍然可以访问Control-Allow-Origin错误,不允许请求.是否无法通过CNAME进行此请求?

注意:我无法控制b.com,所以我无法在那里设置标题.

Ste*_*eve 10

没有(但我有一个真正的解释)

"跨域请求"的"道路规则"通常由"同源策略"管理(参见:W3C评论,维基百科,谷歌浏览器安全手册,Mozilla开发者网络)

W3C明确指出:

原点由URL的方案,主机和端口定义.

根据这个定义,甚至从请求foo.combar.foo.com将被阻止.

在您的示例中,您建议创建一个CNAME针对bar.foo.com哪些点bar.com(我假设您有拼写错误)应该允许请求bar.com通过bar.foo.com.但是,正如我上面所说的那样,即使是来自foo.com客户端的请求也会被阻止发出HTTP请求bar.foo.com.

Mozilla的页面甚至有这个具体的例子:

如果协议,端口(如果指定了一个端口)和主机对两个页面都相同,则Mozilla认为两个页面具有相同的来源.下表给出了与URL http://store.company.com/dir/page.html进行原点比较的示例 :

网址| 结果| 原因

http://store.company.com/dir2/other.html | 成功
http://store.company.com/dir/inner/another.html | 成功
https://store.company.com/secure.html | 失败| 不同的协议 http://store.company.com:81/dir/etc.html | 失败| 不同的端口 http://news.company.com/dir/other.html | 失败| 不同的主人


Muh*_*uhd 2

不。

我从未听说过 CNAME 作为解决此问题的方法,因此我认为可以安全地假设它不能解决您的问题。