簡體   English   中英

跨域請求的解決方法

[英]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 URL 相同的域時,這會起作用並打開 Urltwo,但是當 Urlone 來自與 Origin 不同的域時,Urltwo 不會打開。

我知道它是因為或 CORS 標准,但我需要幫助來解決這個問題。

我已經嘗試下載放松 CORS 的 chrome 擴展,但它沒有用。 我不想使用 jquery 或 anyorigin.com。 使用 javascript 尋找可能的解決方案。

CORS(跨域資源共享)是一個系統,由傳輸 HTTP 標頭組成,用於確定瀏覽器是否阻止前端 JavaScript 代碼訪問跨域請求的響應。 ( https://developer.mozilla.org/en-US/docs/Glossary/CORS )

當禁用跨源資源共享時,您不能將 JavaScript 注入 window,這是設計使然。

可能的解決方法:

  • 在 Urltwo 的服務器上更改 CORS 標頭
  • 通過 HTTP 請求獲取 Urltwo 的源並將其呈現為空白 iframe(適用性會有所不同) 編輯:如果請求是從 JavaScript 發起的,這也會受到 CORS 的約束。

如果您有權訪問服務Urltwo的服務器,則更改 CORS 設置是最佳解決方案。 如果您無權訪問服務器,但可以編輯Urltwo提供的文檔,則可以通過document.postMessage在文檔之間進行通信( https://developer.mozilla.org/en-US/docs/Web/API /Window/postMessage )或通過編碼 URL 中的信息(查詢字符串或散列)。 如果您無法訪問兩者,則可以使用代理在Urltwo獲取內容,發送正確的 CORS 標頭並將結果發回給您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM