首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与IIS 7& Cassini相比,IE在IIS 6上承载web应用程序时的行为有所不同。

与IIS 7& Cassini相比,IE在IIS 6上承载web应用程序时的行为有所不同。
EN

Stack Overflow用户
提问于 2012-05-23 05:18:54
回答 3查看 1.1K关注 0票数 0

我有一个web应用程序,可以在我的开发机器上运行所有浏览器(IE9、Firefox、Chrome、Opera和Safari)。当我将web应用程序部署到测试服务器时,IE将开始阻塞特定的javascript组件(Zoomify)。

我可以打开IE9,在一个选项卡中使用开发工具托管的web应用程序,在另一个选项卡中打开测试服务器web应用程序,只有开发人员托管的应用程序才能工作。除了web.config之外,这两台机器上的web应用程序代码完全相同。

开发人员工具显示这两个站点都在Browser Mode: IE9 Document Mode: IE9 standards中。

Zoomify组件在以下一行上失败:

代码语言:javascript
复制
c.onreadystatechange=null

有错误:

代码语言:javascript
复制
SCRIPT13: Type mismatch

这里发生什么事情?为什么IE在处理Javascript的方式上有不同的表现,取决于web应用程序所在的位置?

更新

我现在已经在另一台服务器上进行了测试,奇怪的是,它正在工作。此时,情况是,当web应用程序托管在IIS 6上时,javascript文件将在IE中失败。

Opera中也存在类似的问题,但我没有收到错误消息。

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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提供图像资源。

票数 0
EN

Stack Overflow用户

发布于 2012-05-23 05:21:55

我猜想,在两个不同的environments...It之间部署应用程序的路径差异可能会导致一个错误的JS引用,您在测试服务器上使用虚拟目录吗?

票数 0
EN

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10713868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档