我有一个web应用程序,可以在我的开发机器上运行所有浏览器(IE9、Firefox、Chrome、Opera和Safari)。当我将web应用程序部署到测试服务器时,IE将开始阻塞特定的javascript组件(Zoomify)。
我可以打开IE9,在一个选项卡中使用开发工具托管的web应用程序,在另一个选项卡中打开测试服务器web应用程序,只有开发人员托管的应用程序才能工作。除了web.config之外,这两台机器上的web应用程序代码完全相同。
开发人员工具显示这两个站点都在Browser Mode: IE9 Document Mode: IE9 standards中。
Zoomify组件在以下一行上失败:
c.onreadystatechange=null有错误:
SCRIPT13: Type mismatch这里发生什么事情?为什么IE在处理Javascript的方式上有不同的表现,取决于web应用程序所在的位置?
更新
我现在已经在另一台服务器上进行了测试,奇怪的是,它正在工作。此时,情况是,当web应用程序托管在IIS 6上时,javascript文件将在IE中失败。
Opera中也存在类似的问题,但我没有收到错误消息。
Dev Machine
Windows 7
Web Server: Cassini
Status: Working
Test Server 1
Windows Server 2003
Web Server: IIS 6.0
Status: Not working
Test Server 2
Windows Server 2008
Web Server: IIS 7.0
Status: Working发布于 2012-05-24 04:08:03
错误的javascript行c.onreadystatechange=null有误导性。通过调试Zoomify javascript代码,我能够确定一个错误是在调用堆栈上生成的。
Zoomify组件试图下载图像以供显示,但由于IE不支持对XMLHttpRequest对象的跨域调用而失败。IE确实支持使用XDomainRequest对象的跨域调用。但是,Zoomify组件不提供对XDomainRequest的支持。Opera 11也不支持跨域呼叫。
对于IE & Opera的问题,我的解决办法是不使用跨域调用,并通过与web应用程序相同的域上的URL提供图像资源。
发布于 2012-05-23 05:21:55
我猜想,在两个不同的environments...It之间部署应用程序的路径差异可能会导致一个错误的JS引用,您在测试服务器上使用虚拟目录吗?
发布于 2012-05-23 05:31:36
您是否在脚本元素上声明类型?我认为这或者是如果您有指定X内容类型选项的http响应头: nosniff
您可以在这里参考:http://blogs.msdn.com/b/ieinternals/archive/2010/09/27/ie9-beta-google-image-search-javascript-content-type-and-nosniff.aspx
https://stackoverflow.com/questions/10713868
复制相似问题