我有一个现有的 jQuery 插件,它可以进行大量 AJAX 调用(主要是 JSON)。我想知道允许它进行跨站点调用的最快方法是什么,即 $.get 和 $.post URL 不会来自同一域。
我听说过 JSONP,但想知道是否有人可以给我一个具体的例子来说明整个过程。如果可能,我想对我的脚本进行最少的更改。我应该使用某种 proxy.php 吗?
感谢您的宝贵时间。
最佳答案
JSONP 将允许您进行跨站点调用。 See jQuery docs on that matter.
概念很简单:jQuery 将附加一个 <script>
,而不是进行普通的 Ajax 调用。标记到您的 <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
},
});
此处提供更多信息:What is JSONP?
关于javascript - 使用 jQuery 的跨站点 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197802/