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

为什么不允许跨域AJAX调用?

潘安平
2023-03-14
问题内容

除了JSONP,为什么要遵循相同的域策略?


问题答案:

出于安全原因,已实施“同源起源策略”;引用维基百科的相关句子:

这种机制对现代Web应用程序具有特殊的意义,因为Web服务器广泛依赖于HTTP cookie来维护经过身份验证的用户会话,因为服务器基于HTTP
cookie信息进行操作以揭示敏感信息或执行状态更改操作。
必须在客户端维护不相关站点提供的内容之间的严格分隔,以防止丢失数据机密性或完整性。

基本上,您不希望任何给定的网站 (例如您可能正在浏览的任何网站-而且我们都知道人们有时会到达您不信任的网站) 能够访问其他任何网站
(例如您的网络邮件)中的数据,或社交网络上的帐户)



 类似资料:
  • 问题内容: 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我在脚本顶部仅添加了以下两行,以使它们能够做到: 现在我的问题是:这里是否遗漏了任何安全方面的考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,什么是更好的解决方案? 感谢您的回复。 问题答案: 如上所述,任何人都可以随时向您的页面发送请求:因此,您需要考虑的主

  • 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展<我只是在我的脚本顶部添加了这两行,让他们完成这项任务: 现在我的问题是:这里有我错过的任何安全考虑吗?这个简单的解决方案会产生严重的问题吗? 如果是,更好的解决方案是什么? 感谢您的回复。

  • 我试图从我的新Angular应用程序中调用REST web服务。当发出请求时,我会得到以下错误: XMLHttpRequest无法加载http://localhost:8080/WebService。请求的资源上没有“访问-控制-允许-来源”标头。因此,不允许访问源“http://localhost”。 我发现这是因为浏览器不允许这样的操作。 编辑我也试着把它添加到我的angular应用程序中:

  • 问题内容: 我有两个文件domain.com/test2.php: 和domain.com/test3.php: 在这种情况下,domain.com/test2.php的输出 与您期望的一样,但是现在让我们说我想在一个子域中创建一个test2.php。为了阻止跨域脚本编写问题,我将在sub.domain.com/test2.php的开头添加以下额外的行: 此额外的行阻止了跨域错误的显示,但是现在该

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

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