2012-01-04 61 views
0

我想澄清一下跨域AJAX意味着它背後的機制。澄清跨域AJAX?

說例如,我有一個網站http://www.example.com。該網站包含一個JavaScript文件,其中包含幾個標準的基於jQuery的AJAX調用(例如$.post(),$.get()等),位於http://www.example.com/js/script.js

現在,我有另一個網站http://www.helloworld.com,它包含以下內容;

<script type="text/javascript" src="http://www.example.com/js/script.js"></script>

會內http://www.example.com/js/script.js這使得請求http://www.example.com Ajax請求被認爲是「跨域」,因此當包括在http://www.internet.com文件進行兼容性問題?

任何答案都會很棒!

回答

3

JS在客戶端執行,所以文件的源文件駐留在哪裏並不重要,它將從地址欄的域中執行。

+0

啊我明白了。這有點OT,而不是直接問題的一部分,但根據我的理解,AJAX請求可以以基於HTTP GET/POST的請求的形式發送到另一個域,但返回的任何數據都必須採用JSONP格式? – Avicinnian 2012-01-04 00:39:14

+0

這比這更復雜一點。您還需要將回調追加到與遠程jsonp回調的名稱匹配的請求URL。 http://en.wikipedia.org/wiki/JSONP – AlienWebguy 2012-01-04 18:55:51

1

爲了能夠包含來自其他域的JavaScript,服務該JS的服務器需要爲該文件提供正確的標頭。 特別是,頭文件需要爲需要跨域JS的域設置Access-Control-Allow-Origin集。

僅用於測試目的,您可能希望使用參數--allow-file-access-from-files運行Chrome,並且它不會停止跨源請求。