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

使用Ajax跨域限制-JSON

章学义
2023-03-14
问题内容

使用ajax请求(ht | x)ml时,您只能将请求发送到同一域。但是,如果您请求JSON,则可以将其发送到任何域。为什么?

有人告诉我,这是出于安全性考虑,但为什么网站会通过Ajax进行恶意操作,而不是直接这样做(如果可行)。


问题答案:

查看此维基百科文章。

JSON之所以“安全”,是因为您必须通过回调传递它。远程站点将运行return
JSON,并且您的JavaScript库不仅会盲目运行它,还会尝试将其传递给您指定的函数,例如jsonpCallback( response )。由于您不是直接运行远程代码,因此您可以控制更多的事情,并且世界上大多数情况都很好。



 类似资料:
  • 我们先从这么一个问题来引入我们本章节的学习 —— 什么是跨域请求? 1.跨域请求 简单来说,跨域请求就是一个域下的资源请求另外一个域下的资源。 同一个域,指的是,协议名、域名、端口号都一致。 举个例子来说,假如 “http://www.a.com” 下的 JavaScript 脚本发起 Ajax 请求 “http://www.a.com/ajax” ,由于 协议名 http 、域名 www.a.c

  • 问题内容: 我了解AJAX跨域策略。因此,我不能仅通过ajax HTTP请求调用“ http://www.google.com ”,并将结果显示在我的网站上。 我使用dataType“ jsonp”进行了尝试,这实际上可以工作,但是出现语法错误(显然是因为接收到的数据不是JSON格式的) 还有其他可能性可以从外部域接收/显示数据吗?iFrame是否遵循相同的政策? 问题答案: 使用AJAX获取跨域

  • 问题内容: 我有此轮询脚本来检查是否在服务器上创建了文本文件。在本地运行良好,但在文件位于其他域时失败。我将如何重写此代码以获得跨域支持? 编辑:我最终使用YQL解决了跨域问题,尽管它可以工作,但是YQL确实很慢,这会增加相当多的性能开销。 谁能为跨域JQuery调用提出更好的解决方案? 问题答案: 在$ .ajax()调用中将dataType设置为“ JSONP” 。您必须确保响应的格式正确才能

  • 问题内容: 这是两个页面,test.php和testserver.php。 test.php testserver.php 现在我的问题是:当这两个文件都在同一服务器上(本地主机或Web服务器)时,它可以工作并被调用;如果它在不同的服务器上,则意味着Web服务器上的testserver.php和localhost上的test.php,它不起作用,并且正在执行。即使ajax内的URL更改为http:

  • 问题内容: 我了解AJAX跨域策略。因此,我不能仅仅通过ajax HTTP请求调用“ http://www.google.com ”,并将结果显示在我的网站上。 我使用dataType“ jsonp”进行了尝试,这实际上可以工作,但是出现语法错误(显然是因为接收到的数据不是JSON格式的) 还有其他可能性可以从外部域接收/显示数据吗?iFrame是否遵循相同的政策? 问题答案: 使用AJAX获取跨

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