【发布时间】:2010-11-28 07:04:20
【问题描述】:
免责声明:我已经研究过各种方法来解决我的问题,因此请在将其标记为重复问题之前阅读此内容
我有一个在 https://xyz.com 上运行的 javascript,它必须从运行在用户本地机器上的应用程序 ABC 检索信息,比如端口 8080。
我的限制是我不能修改从 ABC 发出的 HTTP 标头,也不希望用户安装另一个应用程序,该应用程序将作为将我的请求路由到 ABC 的管道。
跨域/窗口消息传递选项
a) window.postMessage: 已排除,因为我无法在本地机器上运行脚本
b) XDR 对象 (IE) 或 Access-Control-Allow-Origin(Firefox、Safari 等): 已排除,因为我无法修改标题
c) JSONP: 这同样不起作用,因为我无法将响应包含在函数名称中
作为一种解决方法,仅用于测试我已将http://xyz.com 添加到受信任列表中,并为此列表中的站点启用了Access Data Across Domains。 AFAIK,此选项仅适用于 IE 5+ 浏览器。此解决方法允许我从 http://127.0.0.1:8080
发送和接收消息
我的问题有两个方面
1) 如果我在投入生产时继续使用上述方法,我会让用户面临哪些安全隐患?我可以堵住那些洞吗?
2) 是否有任何其他选择可以实现我的目标。
PS:我希望尽可能远离 ActiveX 或 Flash,但如果这是我目前方法的唯一可行替代方案,那么我将不得不遵守规定
干杯
【问题讨论】:
-
我不明白,你目前的做法是什么?那只适用于 IE?
-
Felix,我添加了临时解决方法的屏幕截图
-
所以它实际上不是一个真正的解决方法,因为它只适用于 IE ;)
-
Felix,我猜每个浏览器都提供了类似的禁用跨域请求验证的机制,但我不想走这条路。
标签: javascript ajax cross-domain