小编典典

使用jQuery的跨站点AJAX

ajax

我有一个现有的jQuery插件,可以进行很多AJAX调用(主要是JSON)。我想知道最快允许它进行跨站点调用的方法,即$ .get和$ .post
URL不会来自同一域。

我听说过JSONP,但是想知道是否有人可以给我一个具体的例子来介绍整个过程。如果可能,我希望对脚本进行最少的更改。我应该使用某种proxy.php吗?

感谢您的时间。


阅读 252

收藏
2020-07-26

共1个答案

小编典典

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?

2020-07-26