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 的跨域资源共享的主要内容,如果未能解决你的问题,请参考以下文章

Safari 中的跨域资源共享策略拒绝了跨域重定向

绕过 Amazon Aws 上的跨域资源共享

使用凭证和“基本上”任何来源的跨域资源共享

跨子域的跨域资源共享 (CORS)

Angular 或 Angular 6 中的跨域资源共享 (CORS)。在 localhost 上使用不同端口进行跨域调用时出现问题

IE10 和图像/画布的跨域资源共享 (CORS) 问题