使用 jQuery 的跨站点 AJAX

发布于 2024-07-30 08:27:49 字数 221 浏览 2 评论 0原文

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

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

感谢您的时间。

I have an existing jQuery plugin which makes a lot of AJAX calls (mostly JSON). I am wondering what is the quickest to allow it to do cross-site calls i.e. the $.get and $.post URL's will not be from the same domain.

I have heard of JSONP, but was wondering if someone could give me an concrete example to go about the whole process. I want to make minimal changes if possible to my script. Should I use a proxy.php of sorts?

Thank you for your time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

少女净妖师 2024-08-06 08:27:49

JSONP 将允许您进行跨站点调用。 请参阅有关此事的 jQuery 文档。

这个概念很简单:而不是执行普通的 Ajax调用时,jQuery 会将

您的服务器需要以这种方式发送信息(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?

JSONP will allow you to do cross-site calls. See jQuery docs on that matter.

The concept is simple: instead of doing a normal Ajax call, jQuery will append a <script> tag to your <head>. In order for this to work, your JSON data needs to be wrapped in a
function call.

Your server needs to send information in such way (PHP example):

$json = json_encode($data);
echo $_GET['jsonp_callback'] . '(' . $json . ');';

Then, you can use jQuery to fetch that information:

$.ajax({
  dataType: 'jsonp',
  jsonp: 'jsonp_callback',
  url: 'http://myotherserver.com/getdata',
  success: function () {
    // do stuff
  },
});

More information is available here: What is JSONP?

七色彩虹 2024-08-06 08:27:49

如果您可以控制远程域或者远程域具有宽松的 crossdomain.xml 您可以将诸如 flXHR 之类的库与其 jQuery 插件

If you have control over the remote domain or the remote domain has a permissive crossdomain.xml you can drop in a library like flXHR in conjunction with its jQuery plugin.

岁月静好 2024-08-06 08:27:49

您还可以使用 CORS 代替 JSONP,适用于 ff、chrome、safari。
CORS 设置起来不太麻烦,只需要在服务器端设置一个过滤器。

请仔细阅读这篇文章。解释得很好并且相似。
唯一的限制是 IE 不支持此功能,老版本的 FF、chrome 也有一些问题。

http://techblog.constantcontact.com/软件开发/使用-cors-for-cross-domain-ajax-requests/

You can also use CORS instead of JSONP, works with ff,chrome,safari.
CORS is less troublesome to setup and requires only a filter in server-side.

Please go through this article.Well explained and similar.
Only constraint is IE does not support this and older versions of FF,chrome also has some issues.

http://techblog.constantcontact.com/software-development/using-cors-for-cross-domain-ajax-requests/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文