2012-01-05 32 views
1

我想更好地瞭解跨站腳本攻擊,並允許使用:有人可以幫助我更好地理解跨站點腳本政策

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允許從任何域進行訪問。

回答

4

XMLHttpRequest不看crossdomain.xml,它看起來像錯誤消息中提到的Access-Control-Allow-Origin標頭。

因此服務器需要發送一個標題是這樣的:

Access-Control-Allow-Origin: *

如果他們不發送頭(http://api.beatport.com/catalog/tracks沒有),將被拒絕。

+0

反正有嗎? (修改頭文件,但是它適用於擴展?) – Setheron 2012-01-05 20:14:21

+0

@Setheron你的意思是鉻擴展?那麼你可以這樣做:http://code.google.com/chrome/extensions/xhr.html – Esailija 2012-01-05 20:20:05

+0

嗯,我注入我的腳本到他們的HTML頁面,因爲我需要訪問他們*相同的* jQuery實例,所以我可以鉤入他們的全球ajax事件。有沒有辦法掛鉤到所有的jQuery實例呢? – Setheron 2012-01-05 20:25:15

相關問題