问题标签 [same-origin-policy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
706 浏览

javascript - 反跨域政策的意义何在?

为什么 HTML DOM 和/或 Javascript 的创建者决定禁止跨域请求?

我可以看到禁止它的一些非常小的安全性好处,但从长远来看,它似乎是试图使 Javascript 注入攻击的力量更小。无论如何,这对于 JSONP 来说都是没有意义的,它只是意味着 javascript 代码有点难以制作,并且您必须进行服务器端合作(尽管它可能是您自己的服务器)

0 投票
4 回答
4210 浏览

javascript - 为什么 AJAX 请求仅限于同一个域?

我发现真正令人困惑的是,为什么 AJAX 请求仅限于同一个域?这背后的原因是什么?

我认为从外部位置请求文件没有任何问题,发出 XMLHTTP 请求的服务器似乎也可以很好地获取并发布到外部位置。

0 投票
2 回答
2750 浏览

javascript - jQuery .load() 调用在 Firefox 中不起作用 - 为什么?

我是一名使用 jQuery 的新手程序员,想知道是否有人可以帮助我。

本质上,我为我们文章的社交按钮部分创建了一些 html。

我已经上传了它,目的是使用 jQuery 的 .load() 函数将其拉入每篇文章。

它适用于 IE7,但不适用于 Firefox 或 Chrome。任何人都可以帮助修复它吗?

0 投票
0 回答
1087 浏览

javascript - postMessage 在 GreaseMonkey 中不起作用

因为它无法访问跨域 iframe 上的 contentWindow 属性,但在纯 Firefox 中它可以工作。以下是隔离此问题的一堆代码:

  1. 在本地服务器上创建 3 个文件:

测试.html

iframe.html

postmsg.js

这个 js 文件可以作为标准包含文件 html 工作,然后忽略第一个注释,但是在重命名扩展名到 user.js 后可以安装在greasemonkey 中,然后在调用 contentWindow 时停止工作

请注意,即使 js 解释器的 main 和 framed html 位于同一服务器上,这些文件也位于不同的域中,因为 js 解释器不知道 localhost 和 127.0.0.1 是相同的

我已经放了“@include *”,所以你可以在不同的网站上检查它,看起来这个错误只存在于跨域 iframe 上。如果你去 translate.google.com,它有几个 iframe,但都在同一个域上,这个脚本按预期工作

问题是,该死的跨域安全检查对greasemonkey 做了什么?这与此工具的用法相矛盾。恶意网站不能安装脚本,用户必须同意。我被困了很长时间,因为萤火虫没有表明它在跨域 iframe 上显示的属性实际上在浏览器的 js 引擎上不可用。

0 投票
1 回答
289 浏览

java - Java Applets 在获得用户许可后可以访问外部资源吗?

我想创建一个服务,人们可以进入外部网站,之后返回的源将由我的应用程序修改(无论出于何种目的),然后返回给用户。

通常会通过服务器重定向所有流量,以便服务器是访问外部源的服务器。这是因为 HTML5 和 Flash 套接字无法访问外部源,除非外部源具有所需的策略文件(如果这是错误的,请更正我)。即使用户希望客户端访问,如果外部源本身没有这样的策略文件,它仍然无法访问这些外部源。

我的问题是:如果用户允许,Java 小程序是否可以访问外部源而不管它的策略文件是什么?这通常是怎么做的?

如果没有,还有什么我可以尝试的吗?重定向通过我的服务器的所有流量不是一个选项,因为 1. 带宽和服务器资源的大量使用免费服务和 2. 我的服务器被标记为垃圾邮件机器人或带宽占用者的可能性很高。

提前致谢。

问候,汤姆

0 投票
1 回答
962 浏览

wcf - 同源策略和 Web 服务

如果我有一个基于 WCF SOAP (C#) 的 Web 服务在我的本地 IIS 中运行——并且我创建了一个 ASP.net 网站,再次在我的本地 IIS 中运行——从我的网页发出 HTTP 请求调用的 javascript 会成功吗?还是同源策略规则在这里发挥作用?

0 投票
2 回答
191 浏览

javascript - Google Data js-client 如何在没有任何同源策略问题的情况下访问提要?

我一直在阅读 Google 数据协议的 JavaScript 客户端库,它似乎可以访问任何具有适当接口的 Google 服务(文档、电子表格、日历等)

如果我在自己的域中托管的自己的应用程序中使用此客户端,js 客户端库如何绕过似乎违反的同源策略?是因为客户端库代码本身托管在谷歌顶级域上吗?

0 投票
8 回答
15819 浏览

javascript - 有没有办法绕过 Javascript / jQuery 的本地访问同源策略?

尝试使用ajaxgetJSON和类似的函数从本地(非服务器)开发计算机获取外部 URL。有没有办法绕过同源策略,这样我就可以在本地进行测试,而不必上传到服务器?

0 投票
2 回答
566 浏览

ajax - 从 GWT 客户端访问另一台服务器中的文件

我有一个文件,sample.xml位于一个 Web 服务器上。我想从运行在另一台服务器上的 GWT 应用程序访问此文件。我不想对服务 GWT 应用程序的同一服务器进行 RPC 调用并访问服务器端所需的文件(如代理)。我想直接从客户端访问该文件,因为我的应用程序将作为静态文件托管在 Web 服务器中。

有没有办法做到这一点?

0 投票
2 回答
1359 浏览

gwt - 反向代理背后的 SOP 问题

在过去的 5 个月里,我一直在开发一个 gwt 应用程序,现在是第三方人员开始使用它的时候了。为了准备这个,他们中的一个在反向代理后面设置了我的应用程序,这立即导致浏览器的同源策略出现问题。我猜响应标头中存在问题,但我似乎无法以任何方式重写它们以使问题消失。我试过这个

在某种天真的尝试模仿我想要的行为。没有工作(没有人感到惊讶)。

任何对此有所了解的人在阅读本文时很可能会窃笑并摇头,我不怪他们。如果是我,我也会窃笑……我对此一无所知,这自然使这个问题非常难以解决。任何帮助都将不胜感激。

如何让标头重写工作并摆脱我正在处理的 SOP 问题?

编辑:我得到的确切问题是弹出窗口说:

由于浏览器同源策略,“SmartClient 无法直接联系 URL ' https://localhost/app/resource?action= 'doStuffs'”。删除主机和端口号(即使是 localhost)以避免此问题,或使用 XJSONDataSource 协议(允许跨站点调用),或使用 SmartClient Server 附带的服务器端 HttpProxy。”

但我不应该需要 smartclient HttpProxy,因为我在服务器顶部有一个代理,我应该吗?我没有迹象表明这可能是一个序列化问题,但也许这条消息隐藏了真正的问题......

解决方案 chris_l 和 saret 都帮助找到了解决方案,但由于我只能标记一个,所以我标记了来自 chris_l 的答案。鼓励读者把他们俩都打起来,他们真的在这里为我而来。解决方案非常简单,只需删除服务器的任何绝对路径并仅使用相对路径,这对我来说就是诀窍。多谢你们!