2016-01-14 184 views
0

我在我管理的網站中發佈了一些錯誤報告,並且每過一段時間我都會收到Uncaught SecurityError: Blocked a frame with origin "https://domain.com" from accessing a cross-origin frame的錯誤報告。在堆棧跟蹤中的行號後面,我看到它是我訪問document.querySelector("iframe#results-map").contentWindow的地方。然而,這個iframe是通過一個相對URL訪問的:/html/googleresultsmap.html,所以它不能是跨源的(實際上它工作的時間是99.9%,因爲我沒有這樣的許多報告)。所有報告都報告Chrome(各種版本/變體)。同源請求被阻止爲跨源

那麼一個相對URL如何導致一個跨源幀?

<iframe src="/html/googleresultsmap.html" id="results-map"></iframe>

document.querySelector("iframe#results-map").contentWindow

回答

0

我發現這是當document.domain明確設置某個地方的情況。如果您嘗試使用Safari開發人員工具,則發現它在此情況下更有幫助,其中包含以下消息:

Blocked a frame with origin "{accessor}" from accessing a frame with origin "{accessee}". The frame requesting access set "document.domain" to "blah.com", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access. 
+0

我沒有設置「document.domain」。它可能在哪裏設置?也許瀏覽器擴展?我將如何解決它? – Jayen

+0

您是否嘗試過使用Safari開發工具,它提供了更徹底的錯誤消息嗎? –

+0

我無法複製它。這不是在我的機器上發生的。它似乎只佔用戶機器的0.1%。 – Jayen

相關問題