Opera 的跨域资源共享
Posted
技术标签:
【中文标题】Opera 的跨域资源共享【英文标题】:Cross-Origin Resource Sharing for Opera 【发布时间】:2011-07-31 03:34:56 【问题描述】:有没有人找到关于跨域资源共享的 Opera 解决方法?
我想从我放在 bar.com 上的脚本创建一个跨域 XmlHttpRequest
到我的域 foo.com。
standard 到目前为止还没有被 Opera 实现。
可以在here找到有关如何在其他浏览器上执行此操作的示例和文档
据我测试,您可以在 Firefox、IE、Safari 和 Chrome 上执行此操作。但不是在 Opera 上。
【问题讨论】:
【参考方案1】:可能的替代方法是使用JSONP 进行跨域请求。
【讨论】:
【参考方案2】:如果浏览器不支持真正的 CORS,JSONP 是获得基本 CORS 功能的最佳/唯一方法(仅限 GET,因为它在内部使用 <script>
标记)。
【讨论】:
你也可以做服务器端代理 但这对 Opera 不利, 对于发布请求,您可以使用 ajax+php curl。有很多教程可用,您可以使用“ajax php curl cross domain post”关键字在google中搜索。 这并不是真正的跨域请求,如果例如远程端需要登录 cookie,否则并非所有请求都应来自同一 IP。【参考方案3】:The latest version of Opera's rendering engine, Presto 2.10, now supports CORS.
为 XMLHttpRequest 启用了跨域资源共享 (CORS)。 (Presto/2.10.232)
但是桌面版的 Opera 还没有发布这个版本的渲染引擎。到目前为止,似乎只有一个版本的 Opera 支持 CORS,Mobile 12。
这是 2012 年 2 月 27 日更新到他们的"Web specifications support in Opera products" 页面的摘录:
Miscellaneous
Item | D11.60 | D11.50 | SDK 3.2 | SDK3.1 | M12 | M11.5 | M11.1 | M11 | Mini6.5
-----+--------+--------+---------+--------+-----+-------+-------+-----+--------
CORS | No | No | No | No | Yes | No | No | No | No
D=desktop SDK=device SDK M=mobile Mini=Mini (-:
现在该表已再次更新,因为桌面版本 12 终于发布并支持 CORS:
Item | D12.00 | D11.60 | D11.50 | SDK 3.2 | SDK3.1 | M12 | M11.5 | M11.1 | M11 | Mini6.5
-----+--------+--------+--------+---------+--------+-----+-------+-------+-----+--------
CORS | Yes | No | No | Yes | Yes | No | Yes | No | No | No
【讨论】:
【参考方案4】:Opera 尚未实现 CORS。它正在积极开发中,但我们还没有发布日期。
2012-07-26 更新:截至今天和自 Opera 12 发布以来。Opera 有一个稳定的implementation of CORS。请注意,Opera Mini 尚未实现 CORS。
【讨论】:
这方面有什么更新吗?我尝试在 opera.com 或任何其他提到 CORS 的文档上查找路线图,但空手而归。 @nikc 我们声明我们支持的方式在Web specifications support in Opera 中突出显示。不过要小心,因为例如,截至今天,2.8 在功能旁边会有内部版本号。有些是预先宣布的,因为它们已经在管道中,core integration point 也很重要。如您所见,CORS 尚未完成。 投反对票只是因为此答案已过时且不再正确。 @hippietrail 感谢您提醒我:p 我正在为 Opera 工作。以上是关于Opera 的跨域资源共享的主要内容,如果未能解决你的问题,请参考以下文章
Angular 或 Angular 6 中的跨域资源共享 (CORS)。在 localhost 上使用不同端口进行跨域调用时出现问题