使用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

上一篇: site AJAX using jQuery

下一篇: jQuery $.ajax(), $.post sending "OPTIONS" as REQUEST