我正在尝试更好地了解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允许从任何域进行访问。
答案 0 :(得分:4)
XMLHttpRequest
不查看crossdomain.xml
,它会查看错误消息中提到的Access-Control-Allow-Origin
标题。
因此服务器需要发送如下标题:
Access-Control-Allow-Origin: *
如果他们没有发送该标题(http://api.beatport.com/catalog/tracks
没有),则会被拒绝。