2010-06-08 82 views
4

所以,我一直在試圖解決這個問題,在我的ajax(jQuery)網絡應用程序中的一些大比例的Windows用戶無法播放。我一直沒有能夠在一個平行虛擬機中運行的Windows 7 IE8上重現它。主要的問題似乎在JavaScript的某處,因爲用戶抱怨的是一個Ajax按鈕不起作用。他們點擊它並沒有任何反應,所以無論是事件沒有發射,或者我的ajax調用失敗,並且可能從ajax返回失敗。什麼是這個Internet Explorer(javascript?)語法錯誤-2146827286?

嘗試了一些想法後,一位朋友建議我檢查一下該死的! https://damnit.jupiterit.com/它會在javascript中捕獲異常並將它們通過電子郵件發送給您。這是一個非常棒的工具!所以,現在我有更多的數據,但是,我卡住了。基本上,似乎大部分例外似乎都抱怨語法錯誤。我會粘貼下面的樣本。

message: 
    Syntax error 
number: 
    -2146827286 
description: 
    Syntax error 
Browser: 
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 1.0.3705; OfficeLiveConnector.1.3; OfficeLivePatch.0.0) 

有趣的是,語法錯誤始終出現在瀏覽器報告MSIE 8.0,但與Windows Vista,XP,和下面,用最新的IE這麼大年紀的操作系統。

有誰知道這個錯誤?這可能是一些奇怪的慢電腦/慢互聯網連接的事情,可能是我的JavaScript文件沒有完全加載之前,我稱之爲功能。我使用jquery $(document).ready()在我設置任何東西之前等待。

+0

難道這是一個人們已經設置的東西的Internet Explorer選項? – ben 2010-06-09 00:47:29

+0

確定這個例外是有誤導性的。 我能找到一臺計算機並重現問題。問題的核心是較舊的Windows操作系統具有限制性cookie設置,django框架需要通過這些設置來識別跨請求的經過身份驗證的用戶。當它沒有這個時,框架吐出一個迴應我的ajax調用,這對我的期望是沒有意義的。 – ben 2010-06-09 23:46:40

回答

0

無論何時出現如此大的負數錯誤,都要先將其轉換爲十六進制。使用Windows計算器,選擇查看/科學,將該數字複製/粘貼到計算器中,然後按十六進制。當你這樣做時,你得到800A03EA(只需要最後8位數字)。然後,在Google上搜索該錯誤編號,並查看是否有找到的頁面可以幫助您。

+0

謝謝!谷歌搜索說可能這是一個VBScript的東西? 可以互聯網瀏覽器解釋JavaScript爲VBScript?我確實有我的代碼包裝在... 雖然... – ben 2010-06-09 00:46:21

+0

@ben:我想這可能是IE可能會誤解腳本語言,但我不太確定爲什麼它有時會失敗,但並非總是如此。 – 2010-06-09 01:37:56

1

-2146827286是HRESULT異常代碼(更常見的十六進制爲0x800A03EA),並且在您的(服務器端)腳本中似乎是語法(編譯)錯誤。您可以嘗試執行您的AJAX調用在客戶端代碼的上下文之外執行的端點,以查看是否可以捕獲更多信息(最好在開發/ QA環境中)。

+1

如果這是一個服務器端問題,那麼這個問題是不是瀏覽器不可知論?報告此錯誤的唯一用戶代理是Internet Explorer客戶端。 – ben 2010-06-09 00:10:09

+0

哦,我的服務器端是python + django – ben 2010-06-09 00:12:19

+0

這裏有一個想法,Internet Explorer可以解釋JavaScript爲VBScript嗎? @我有它我的代碼包裝在... @腳本類型=「文本/ JavaScript」> – ben 2010-06-09 00:45:22