有人可以帮助我更好地理解跨站点脚本策略

时间:2012-01-05 19:43:07

标签: javascript html same-origin-policy

我正在尝试更好地了解Cross Site Scripting并允许使用:

http://api.beatport.com/crossdomain.xml为例。

XML列出允许所有域访问。但是,当我从我的HTML页面(或从控制台内)发出请求时,它将失败,其错误类似于:

XMLHttpRequest cannot load http://api.beatport.com/catalog/tracks. Origin <mydomain> is not allowed by Access-Control-Allow-Origin.

我觉得奇怪的是,如果我把请求放在浏览器的地址栏中,请求就会通过。

有人可以解释一下发生了什么以及我需要做些什么来解决这个问题,因为很明显,API允许从任何域进行访问。

1 个答案:

答案 0 :(得分:4)

XMLHttpRequest不查看crossdomain.xml,它会查看错误消息中提到的Access-Control-Allow-Origin标题。

因此服务器需要发送如下标题:

Access-Control-Allow-Origin: *

如果他们没有发送该标题(http://api.beatport.com/catalog/tracks没有),则会被拒绝。