2013-01-17 43 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