【发布时间】:2010-07-20 18:18:45
【问题描述】:
我想从网站执行跨域 http 请求。我有哪些选择?
Javascript 已退出,因为大多数浏览器不允许跨域调用。通常解决方案是使用代理,但这不是这个项目的选项。
我正在考虑的其他事情是使用 Flash 或 Java。还有其他我可以使用的平台吗?
【问题讨论】:
-
定义“请求”。你需要做什么?
标签: java javascript flash http cross-domain
我想从网站执行跨域 http 请求。我有哪些选择?
Javascript 已退出,因为大多数浏览器不允许跨域调用。通常解决方案是使用代理,但这不是这个项目的选项。
我正在考虑的其他事情是使用 Flash 或 Java。还有其他我可以使用的平台吗?
【问题讨论】:
标签: java javascript flash http cross-domain
您将不得不坚持使用代理解决方案,因为 flash 和 java 具有与 javascript 相同的跨域限制。如果这是仅供个人使用的东西,据我所知,有一个选项可以使用 flex builder 和 falsh player 的调试器版本,它可以发出跨域请求。
【讨论】:
Java 和 Flash 都支持 crossdomain.xml 文件,分别记录在 Oracle 和 Adobe 网站上。
W3C 正在制定一个采用不同方法的标准。什么时候由哪些系统实现,我无法预测。
【讨论】:
如果您对要向其发出跨域请求的服务器具有管理访问权限,则可以使其服务于 Flash 跨域策略文件,该文件授予另一台(或多个服务器)跨域访问权限。那么其他服务器需要使用 Flash 进行跨域请求。
如果您正在寻找可以帮助您入门的东西,请查看开源 Forge 项目。它在 JavaScript 中公开了一个跨域 XmlHttpRequest API,因此您只需编写 JavaScript 代码:
【讨论】:
“Javascript 已经失效,因为大多数浏览器不允许跨域调用。”
不幸的是,Javascript 绝对是其中之一。您只需使用您喜欢的任何src url 向页面添加一个新脚本。它被称为Cross-Site Scripting(或 XSS)。 IMO,它引入的漏洞使得浏览器试图规范“同源”策略的所有其他尝试都毫无意义。他们只是想在一条已经掉到你脚踝周围的裤子上修补一个洞。
【讨论】:
<script> 标记来自与其自己的域不同的域。页面故意利用从任何地方获取脚本的能力是完全不同的事情。实际上,从 Google 的服务器中提取 jQuery 库是非常常见的。