跨域请求的解决方法

Workaround for Cross Domain Request

我正在尝试执行以下代码以使用 javascript

打开 URL
var Urlone = document.getElementById('00N0b00'),

opening = window.open(Urlone),
            
opening.onload = function() {

var Urltwo = opening.document.getElementById('00GG')

window.open(Urltwo);}

当 Urlone 来自与 Origin 相同的域时,这可以工作并打开 Urltwo URL,但是当 Urlone 来自与 Origin 不同的域时,Urltwo 不会打开。

我知道这是因为或 CORS 标准,但我需要帮助来解决这个问题。

我已经尝试下载 chrome 放松 CORS 的扩展,但它没有用。我不想使用 jquery 或 anyorigin.com。 使用 javascript.

寻找可能的解决方案

CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests. (https://developer.mozilla.org/en-US/docs/Glossary/CORS)

当 cross-origin 资源共享被禁用时,您无法将 JavaScript 注入到 window 中,这是设计使然。

可能的解决方法:

  • 在 Urltwo
  • 服务器上更改 CORS headers
  • 通过 HTTP 请求获取 Urltwo 的源并将其呈现在空白 iframe 中(适用性会有所不同)。编辑:如果请求是从 JavaScript 发起的,这也将受制于 CORS。

如果您可以访问服务 Urltwo 的服务器,更改 CORS 设置是最佳解决方案。 如果您无权访问服务器,但可以编辑在 Urltwo 提供的文档,则可以通过 document.postMessage (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) 或在 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage 中对信息进行编码来在文档之间进行通信=35=](查询字符串或散列)。 如果您无法访问两者,则可以使用代理在 Urltwo 获取内容,发送正确的 CORS headers 并将结果发回给您。