我有一个现有的jQuery插件,可以进行很多AJAX调用(主要是JSON)。我想知道最快允许它进行跨站点调用的方法,即$ .get和$ .post URL不会来自同一域。
我听说过JSONP,但是想知道是否有人可以给我一个具体的例子来介绍整个过程。如果可能,我希望对脚本进行最少的更改。我应该使用某种proxy.php吗?
感谢您的时间。
JSONP将允许您进行跨站点调用。请参阅jQuery文档。
这个概念很简单:jQuery不会进行普通的Ajax调用,而是会将<script>标记添加到<head>。为了使其正常工作,您的JSON数据需要包装在一个函数调用中。
<script>
<head>
您的服务器需要以这种方式发送信息(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?