当前位置: 首页 > 面试题库 >

使用jQuery的跨站点AJAX

蔡辰钊
2023-03-14
问题内容

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

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

感谢您的时间。


问题答案:

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?



 类似资料:
  • 问题内容: 我有一段可捕获JSON数据的JavaScript。在本地执行时,一切似乎都可以正常工作。但是,当我尝试从其他站点访问它时,它不起作用。 这是脚本。 您可以在“ http://mydeveloperpage.com/sandbox/ajax_json_test/ ”中找到完全相同的文件的副本。 任何帮助将不胜感激。 谢谢! 问题答案: 从文档中: 由于浏览器安全性的限制,大多数“ Aja

  • 问题内容: 我想提供一段Javascript代码,该代码可在包含Javascript的任何网站上运行,但是它始终需要在托管Javascript的服务器上获取更多数据(甚至修改数据)。我知道出于明显的原因有一些安全限制。 考虑xyz.com上托管的index.html,其中包含以下内容: some.js能够使用XMLHttpRequest将数据发布到abc.com吗?换句话说,因为我们从那里加载了J

  • 问题内容: 我需要从一个网站向另一个域中托管的REST Web服务发出AJAX请求。 尽管这在Internet Explorer中很好用,但是其他浏览器(例如Mozilla和Google Chrome)强加了更加严格的安全性限制,这些限制禁止跨站点AJAX请求。 问题是我无法控制站点所在的域或Web服务器。这意味着我的REST Web服务必须在其他地方运行,并且我无法采用任何重定向机制。 这是进行

  • 问题内容: 我正在尝试使用AJAX加载跨域HTML页面,但除非dataType为“ jsonp”,否则无法获得响应。但是,使用jsonp时,浏览器期望使用脚本mime类型,但接收到“ text / html”。 我的请求代码是: 有什么方法可以避免对请求使用jsonp吗?我已经尝试使用crossDomain参数,但是没有用。 如果没有,有什么办法可以接收jsonp中的html内容?当前,控制台在j

  • 问题内容: 我正在尝试使用“ GWT请求”构建器发出“跨站点请求”,但我无法使其正常工作。如您所见,这是一个GWT示例项目的大部分内容,我已经浏览了https://developers.google.com/web- toolkit/doc/latest/tutorial/Xsite 。但是我仍然缺少一些东西。 我在这里发布代码。我在想什么..? 问题答案: 实际上,如果可以在Servlet Re

  • 看看别人想出了什么设计与特性是十分有趣的。下面列出了一些可供学习的博客。 Tom Preston-Werner (源代码) Nick Quaranto (源代码) Roger Chapman (源代码) GitHub Official Teaching Materials (源代码) Rasmus Andersson (源代码) Scott Chacon (源代码) 如果你想查看更多的示例,你可以