javascript - 使用 jQuery 的跨站点 AJAX

标签 javascript jquery ajax cross-site

我有一个现有的 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/

相关文章:

javascript - 如何通过 javascript 和代理从任何 url 简单地读取 html?

javascript - 在Jquery中选择相邻父元素的子元素

javascript - 使用命名函数设置多个事件响应

javascript - 如何使用 jquery 区分桌面浏览器尺寸 1024px 和平板电脑尺寸 1024px

Javascript/jQuery $.get(url) 标题解析不起作用

javascript - 使用 HTML5 Ajax 表单属性不适用于 ASP.NET MVC,仍然被重定向到 Action url

javascript - 检查客户端浏览器是否支持并启用 WebGL2

带有 POST 数据的 Javascript XMLHttpRequest 上传文件

javascript - 一张 Angular ng-map 中的标记重新出现在错误的 View 中

javascript - 什么是 X-REMOVED HTTP header ?