2010-06-09 24 views
128

Chrome(或任何其他webkit瀏覽器)會拋出大量這樣的「不安全的JavaScript嘗試訪問帶有URL的框架...」例如使用Facebook API時。「不安全的JavaScript嘗試訪問帶有URL的框架...」錯誤正在Chrome瀏覽器檢查器中持續生成

它不會干擾實際操作,但它確實使javascript控制檯基本無法使用。

我想知道是否有一種方法可以在控制檯中專門抑制這些錯誤?或者如果有其他解決方案,你們可以想到,我會非常感激。

謝謝。

+1

目前我使用的方法是將控制檯選項卡設置爲僅顯示日誌。我正在尋找一種解決方案,可以讓我跟蹤錯誤(不是這個)。 – 2010-06-09 21:45:52

+0

這將是一個很好的例子,提供你如何使用API​​。有很多原因可能會發生。 – Kinlan 2010-06-10 08:53:51

+0

我知道你的意思,但我很確定這發生在任何facebook集成。舉個例子,在Domino網站上打開你的webkit js控制檯(在生產環境中)http://www.pizzaholdouts.com – 2010-06-10 18:00:54

回答

19

您可以在測試期間通過使用--disable-web-security命令行選項運行chrome來允許跨域請求。這應該可以擺脫錯誤(並允許FB窺視你的測試;)

+0

嗯,這是有趣的...有沒有辦法設置選項,除了命令行?我從命令行嘗試了這個:'/ Applications/Google \ Chrome.app/Contents/MacOS/Google \ Chrome --disable-web-security',它似乎可行!但它表示無法加載我的個人資料......任何想法如何從應用程序中設置該標誌,或將其設置爲默認值? – 2010-07-28 22:50:36

+4

作爲一個更新,我現在只使用鉻,我仍然很想知道這個答案 – 2011-02-18 20:22:23

+2

'open -a'/ Applications/Google Chrome Canary.app'--args --disable-web-security' – sandstrom 2012-10-04 15:00:39

3

因爲我們不能責怪從谷歌的人構建這樣一個安全的瀏覽器,我認爲最好的解決方案是使用Facebook的服務器(例如PHP SDK),它會爲您節省很多,很多,很多,很多,很多頭痛。我在使用FB JavaScript SDK中看到的唯一優點是可以使用javascript/jQuery自己完成的彈出式登錄。

+6

爲什麼要使用PHP SDK(或其他服務器端SDK)節省了很多頭痛? – 2011-08-28 17:11:57

+0

@steve:Chrome阻止不安全請求這一事實在很大程度上解決了客戶端處理不安全的問題。 – 2011-09-28 08:31:11

+2

在決定是否放置邏輯服務器端或客戶端時,JSHO控制檯的恕我直言的污染不應該成爲主要考慮因素。 – 2013-03-15 17:58:30

4

當來自不同域的源文件被加載並嘗試訪問document.cookie時,會發生這種情況。它出現在頭部源(腳本標籤)以及iframe文檔中,這些文檔試圖訪問document.cookie出於某種原因。

2

如果在您向Facebook註冊應用程序時,在站點URL字段中沒有尾隨正斜槓,則可能會引發這些錯誤。換句話說,你需要 「http://domain.com/」 而不是 「http://domain.com

您可以從developers.facebook.com/apps編輯設置檢查站點URL設置 - >基本 - >網站URL。

+0

你能向我澄清你的判決嗎? – itinance 2013-04-13 09:39:36

+1

認爲他的意思是在http://developers.facebook.com/apps – 2013-06-17 21:43:42

4

什麼問題?

Chrome JS控制檯中的錯誤消息爲Unsafe JavaScript attempt to access frame with URL...

由於@thechrisproject points out,這些錯誤是由許多著名的第三方API和部件,包括引起的,但不限於:

  • Facebook的JS SDK
  • Vimeo的iframe嵌入
  • 谷歌地圖iframe嵌入

我在理解爲什麼(請糾正我,如果我錯了)

Chrome提供了更爲嚴格的安全設置和/或顯示更多這樣的錯誤比其他瀏覽器。API/Widget /嵌入式作者嘗試做所有不適用於所有瀏覽器(可能用於他們自己的報告/分析)的事情(跨域/框架),但如果它們沒有實際影響其小部件的適用性工作(只是會導致很多煩人的錯誤)

快速解答

NO,你不能(只是)抑制鉻控制檯這些錯誤。

解決方案?

  • 處理它。這些錯誤實際上並未破壞這些第三方API和小部件,它們只是使控制檯更加難以使用
  • 您可以將控制檯設置爲僅記錄警告,日誌或調試消息。這將隱藏所有錯誤。
  • 您可以使用其他瀏覽器
  • 由於@Dagg_Nabbit. pointed out,您可以通過使用--disable-web-security命令行選項運行chrome來允許跨域請求。更多信息在這裏:Disable same origin policy in Chrome。請注意,此設置會對瀏覽器的安全性產生負面影響。我有2個鉻快捷鍵,所以我可以打開或不打開這個標誌。
相關問題