使用jQuery的网站AJAX
我有一个现有的jQuery插件,这使得大量的AJAX调用(主要是JSON)。 我想知道允许它进行跨站点调用的最快速度是什么,即$ .get和$ .post URL不会来自同一个域。
我听说过JSONP,但想知道是否有人可以给我一个具体的例子来说明整个过程。 如果可能的话,我想尽可能少地改动我的脚本。 我应该使用一个proxy.php的种类?
感谢您的时间。
JSONP将允许您进行跨站点调用。 查看关于这个问题的jQuery文档。
这个概念很简单:jQuery不会执行正常的Ajax调用,而会将<script>
标记添加到<head>
。 为了这个工作,你的JSON数据需要包装在一个函数调用中。
您的服务器需要以这种方式发送信息(PHP示例):
$json = json_encode($data);
echo $_GET['jsonp_callback'] . '(' . $json . ');';
然后,你可以使用jQuery获取这些信息:
$.ajax({
dataType: 'jsonp',
jsonp: 'jsonp_callback',
url: 'http://myotherserver.com/getdata',
success: function () {
// do stuff
},
});
更多信息可以在这里找到:什么是JSONP?
如果您可以控制远程域,或者远程域具有宽容的crossdomain.xml,则可以将其放入像flXHR这样的库并结合其jQuery插件。
您也可以使用CORS而不是JSONP,与ff,chrome,safari一起使用。 CORS安装起来不麻烦,只需要服务器端的过滤器。
请阅读这篇文章。解释和类似。 唯一的限制是IE不支持这个和旧版本的FF,chrome也有一些问题。
http://techblog.constantcontact.com/software-development/using-cors-for-cross-domain-ajax-requests/
链接地址: http://www.djcxy.com/p/46241.html