2012-01-04 77 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,并且它不会停止跨源请求。