问题标签 [cross-domain-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.
javascript - 不同端口上的 JS 和 API 服务器之间的交互
我有一个在端口上运行的 API 服务器和在开发机器AAAA
上的端口上运行的 JS 前端应用程序(emberjs,使用 yeoman) 。BBBB
在实时服务器上,这些端口将是相同的。不幸的是,在开发机器上我遇到了跨域策略问题。
我能做些什么呢?
PS:目前我通过使用启动 Chrome 解决了这个问题
http://localhost:8888/
并在 JS api 中使用绝对根路径。但我并不是硬编码的 url 和特殊标志的粉丝。如果有更好的解决方案,请告诉我!
flash - Flash 策略文件不起作用(相同的域,不同的端口)
我不知所措。我不明白为什么 Flash 没有正确加载我的策略文件。我正在通过 Flash 调试器对此进行测试。
错误:
然而这有效:
指定 crossdomain.xml 的绝对路径也不起作用。我可以在我的浏览器中加载这个文件。
甚至这都行不通(来自非常流行的博客文章的解决方案):
import flash.system.Security;
Security.allowDomain("http://127.0.0.1");
这是调试器策略文件日志:
这里有趣的部分是OK: Policy file accepted
消息出现在错误之后,即使我正在调用:
之前URLRequest
。所以我把它移到了URLRequest
一个 setTimeout 中,现在日志说:
因此,它似乎已经很好地加载了 843 策略文件,但随后尝试加载端口 3014 策略文件(可能正在检查子策略文件?)。这只是一个 socket.io HTML 页面,上面写着“欢迎来到 socket.io”。由于这个原因,它似乎不应该失败..
我在调试器警报中得到了这个:
任何想法都非常感谢。谢谢!
javascript - .getJSON 有效,.get 无效
我有一个函数,它使用 .getJSON 从服务器获取 JSON 文件,从中获取一些数据(url 是数据的一部分),然后调用另一个需要从解析的 url 中获取信息的函数(普通 Jane HTML 页面)。
.
JSON 部分运行良好。HTML 部分没有做任何事情。根据 Firebug 的说法,页面似乎正确返回(200),但我没有得到任何数据。
JSON 文件和其他纯 HTML 页面位于同一台服务器上,只是不同的目录,所以我认为这不是与域相关的问题。我最初尝试使用获取数据;
但出于某种原因,Firefox 和 Chrome 都对 req.send() 大喊大叫。我的研究使我认为这是一个(跨)域相关问题 - 浏览器认为该页面正在请求其域之外的数据(所有各方都在以“company.com”结尾的同一域上)。
为什么我的 $.get 不起作用和/或如何摆脱 XMLHttpRequest.send() 错误?
javascript - document.domain 更改后,无法在 IE 中访问 about:blank iframe
有谁知道about:blank
在 IE 页面上创建 iframe的任何变通方法document.domain
?
document.domain
更改属性后,IE 似乎不允许访问空/动态 iframe 。
例如,假设您正在动态创建一个 iframe,然后将一些 html 注入其中:
这是关于 jsfiddle 的一个活生生的例子:http: //jsfiddle.net/XHkUT/
您会注意到它在 FF/Webkit 中运行良好,但在 IE 中却不行。这尤其令人沮丧,因为这会影响在属性更改后document.domain
创建的 iframe (如上面的示例所示)。
IE 规则似乎是“如果您在更改后创建动态/空 iframe document.domain
,则无法访问其 DOM。”
将 iframe 设置src
为about:blank
javascript:void(0)
或javascript:""
未成功。
php - jQuery 中的跨域 URL
我做了一个非常简单的 index.php 代码如下
在这段 HTML 代码中,我们从用户那里得到一个号码并调用 httpgGet.js 文件。httpGet.js 是:
我们将用户编号发送到 isprime.php 文件,它会检查用户编号是否为质数。当我说 $.post('php/isprime.php',.....) 它工作得很好,但是当我想从另一台计算机调用 isprime.php 时,它就不起作用了。
我的意思是 $.post('192.168.1.1/test/isprime.php'....) 给了我一个未找到的错误。
该文件存在,我可以使用来自浏览器的直接调用来运行代码。当我在浏览器中输入 192.168.1.1/test/isprime.php 时,该文件是可访问的,但是从 js 文件中,它失败了。显然,我也可以 ping 192.168.1.1。即使使用 FireBug,我也检查了代码并且没有彻底。
我进行了很多搜索,发现浏览器不允许跨域调用(我猜是出于安全目的),但我找不到解决这个问题的解决方案。YQL 有一些东西(这是一种查询语言,我不知道我是否可以使用它)。我也看到了一些关于 cULR 的东西,但我不确定它是否也有效。
请帮忙。我真的需要它。非常感谢。
javascript - 带有社交插件和 API 调用的 HTML5 页面的内容安全策略
建议对具有以下内容的 HTML5 页面使用什么内容安全策略:
1) Facebook 插件
2) 推特插件
3) 谷歌加一
4) 谷歌翻译
6) 来自 cdn.mywebsite.com
7) 优酷
我收到很多错误,如下所示:
我正在使用 YouTube 视频 iframe 和许多社交小部件,包括 Pinterest API 等。需要你的帮助。
javascript - 跨域访问时如何抑制“不安全的 JavaScript 尝试使用 URL 访问框架”
有没有人知道一个很好的解决方案来抑制 Chrome 开发工具控制台中显示的警告消息“不安全的 JavaScript 尝试使用 URL 访问框架”,当尝试访问来自不同域的框架时会发生这种情况?
现在,我有一个检查窗口是否可访问的功能。每次在来自不同域的窗口对象上执行此函数时,Chrome 开发工具控制台中都会显示一条警告消息。这种情况经常发生,控制台被所有这些警告污染,很难发现真正的 JS 错误。
我在想也许有办法在控制台中抑制这些警告?或者更好的是,有没有更好的方法来编写代码来检查窗口是否可访问?
这就是我所做的:
actionscript-3 - 从本地环境中的闪存套接字连接到 TCP 服务器
我制作了一个用于分发版本的 swf 文件,供客户在他们的计算机上使用。
我有一个从该 swf 文件连接的 TCP 服务器。
在测试之前,我在adobe网站上阅读了一些与策略文件相关的文章
我尝试对此进行测试,并为此使用了 nodejs 和 swf 文件
但我失败了。这是它的样子。
根上的 crossdomain.xml
tcp_server.js
本地的 swf 文件
无论如何,这似乎是一个长代码
我测试了它,并得到了这个错误
对于错误代码,xmlsocket://localhost:843 的策略文件将被忽略
我找不到我的代码有什么问题,
如果您知道,请告诉我
感谢阅读此问题的人
祝你今天过得愉快。
iframe - 跨域 iFrame 会导致不同浏览器中的安全错误吗?
我们需要在我们自己的网站(即 www.OurCompany.com)中的 iFrame 中托管另一个工具。该工具位于不同的 URL(即 www.TheToolSite.com)上。
我们不需要与 iframe 的内容进行交互。但是我们确实需要能够调整 iframe 的大小以适应内容。
在这种情况下浏览器会给出安全警告或错误吗?
asp.net - 使用 easyXdm 的跨域 AJAX 发布
我正在尝试使用 easyXdm 库让跨域 AJAX 帖子工作。
在我的本地开发环境中,我有两个站点:
TestPage.html(AJAX 帖子)
当我发布 AJAX 帖子时,我在浏览器的控制台中得到以下信息:
问题: Web 服务从未真正接收到数据。这很明显,因为我的 AJAX 发布成功函数应该显示一个thanksDiv
并且应该在 *database 中创建一个记录。
注意:我正在替换我现有的 AJAX 邮政编码,因为我需要使用 easyXdm 来解决客户端站点上 Internet Explorer 6 和 7 的问题。
附加信息: 我的 easyXdm 文件所在的文件结构如下: