2013-01-17 39 views
4

我正在使用valums ajax-upload和ashx處理程序一起使用戶可以上傳Web應用程序Im開發中的文件。對於大約95%(大約3000)的用戶來說,所有工作都很好。文件上傳有時無法在IE9上工作

對於最後大約5%,我得到報告說上傳永遠不會結束,輪子不停地旋轉。看來那些得到這個錯誤的人都在使用IE9.0。

我已經測試過所有可以遇到的IE9.0,但仍然無法重現錯誤。我也嘗試記錄所有可能的錯誤,但仍然沒有運氣。

請任何人都可以重現該問題,並希望給我一個JavaScript控制檯錯誤成績單,如果有的話。爲了測試轉到步驟2(上傳部分),並嘗試上載一個小的文本文件:

https://jobmatchprofile.com/backend/login.aspx?auto_login=24G3FY

UPDATE

我一直在與誰遇到過這個問題,用戶接觸。錯誤信息可以在這裏看到。這是在丹麥語,並說:「SCRIPT5訪問被拒絕」。

錯誤消息enter image description here

什麼奇怪的是,用戶有相同的IE版本是給別人打工(我爲例):我一直在測試上:9.0.8112.16421,也跑WIN7(我) 。然而,產品ID不同,他有一個丹麥版本,我有美國版本。

UPDATE II

我終於可以重現此錯誤。我知道這聽起來有點奇怪,但相信我是這樣的:當通過發送到我的Gmail帳戶的鏈接打開頁面時,我得到同樣的錯誤。用戶從第一個更新也用gmail打開該頁面。

+0

你是如何管理來實現,這只是IE的問題? – Kamo

+0

從我爲所有用戶登錄的用戶代理字符串 - 從我挖掘到的所有用過的IE的5-6個案例中。但你是對的,這可能是巧合 – Muleskinner

+0

當用戶取消上傳文件大小或情況如何? – Kamo

回答

4

您對Gmail的參考指出瞭解決方案的方向:當您單擊電子郵件中的鏈接時,Gmail會從HTTP標頭剝去引用鏈接數據,除非您使用鼠標右鍵並選擇「在新標籤[或窗口]中打開」,大概是因爲這可以防止他們的代碼攔截標題。您的腳本是否有機會檢查有效的HTTP REFERRER?


您是否正在進行任何跨域(子)域或跨協議AJAX調用?如果是這樣,那麼你可能需要代理請求。考慮以下來自Yahoo!的解決方案。開發者網絡: http://developer.yahoo.com/javascript/howto-proxy.html

參見:

(聯合國)幸運的是,我沒能重現錯誤的IE9, v。9.0.8112.16421(儘管在嘗試上傳空的.txt文件時,我確實得到了一般性的現場錯誤,但是似乎完全不相關)。

+0

非常感謝你的答案 - 我現在可以自己再現錯誤,請參閱我的問題中的更新II。將查看您的鏈接。 – Muleskinner

+0

我忘了:沒有跨域或跨協議ajax調用。我甚至可以在這裏重現它[http://jsfiddle.net/Claudius/q4b6k/15/](http://jsfiddle.net/Claudius/q4b6k/15/)重現,發送jsfiddle鏈接到一個Gmail帳戶和點擊鏈接在Gmail使用IE9.0 - 它會拋出錯誤(檢查JavaScript控制檯)!其他瀏覽器不會拋出錯誤,並使用IE9.0鏈接從其他頁面(如SO)也可以工作 – Muleskinner

+0

我已更新我的答案。您對Gmail的引用已將其提供(我在第一次閱讀時錯過了第二次更新)。 – redburn

0

即使您確定它與用戶單擊電子郵件內的錨點有關,我會說這是因爲Internet Explorer中的策略設置。之前我看到過類似的錯誤,並注意到最常見的錯誤與公司環境中的用戶的Internet Explorer策略有關。

+0

這是一個事實:1)通過使用IE9.0的Gmail鏈接訪問上傳頁面會導致錯誤2)通過點擊其他地方的鏈接(如SO)或者在地址欄中手動輸入來訪問上傳頁面的瀏覽器不會給出錯誤(相同的瀏覽器,同一臺計算機,相同的位置)。另外:報告問題和我檢查過的用戶(5-7個用戶)的用戶都使用IE9.0並提供了一個gmail帳戶作爲聯繫郵件。所以我非常確定這是IE9.0和Gmail的一個奇怪組合,儘管我認爲它幾乎聽起來太奇怪了,不會是真的 – Muleskinner

+0

並且:CTRL +從Gmail中單擊(或者在新選項卡中單擊左鍵單擊 - >打開鏈接)不會出現正常點擊的錯誤。 – Muleskinner