【问题标题】:Sys is undefined - ajax issue in IE 7 onlySys 未定义 - 仅 IE 7 中的 ajax 问题
【发布时间】:2010-09-27 00:55:34
【问题描述】:

我有一个奇怪的问题,似乎只影响 IE 7。该网站是一个 3.5 c# asp.net 网站,它利用 ajax 和部署到 win 2003 服务器的 ajax 控制工具包。 web.config 中的一切似乎都是正确的。事实上,在 IE6 和 Firefox 3 中一切正常。只有在 IE7 中,我才得到可怕的 sys is undefined 错误。

此外,在相同代码的不同安装中,该站点似乎在 IE7 上运行良好。该服务器运行的是 win 2003,设置非常相似。

由于这似乎是服务器问题,是否有任何设置会阻止启用 ajax 的网站在 IE7 中正确显示?

【问题讨论】:

  • 您是否有代码示例,或者您能否说明您在哪里得到了异常?例如你能发送吗,你收到了吗?

标签: asp.net ajax internet-explorer-7 iis-6 windows-server-2003


【解决方案1】:

你确定它只有IE7吗?也许其他浏览器正在抑制错误。 Firefox 上的 Firebug 可能会将这一点暴露出来。

我见过两次这样的事情是 a) 在与 ASP.NET Ajax 相同的项目中使用 jQuery,这里 jQuery 的 noConflict 方法有所帮助

b) 检查 ScriptManager 在您的页面上的位置,确保它没有包含在内容页面中,而是在上面的母版页或类似内容中引用

希望对你有帮助

【讨论】:

    【解决方案2】:

    我知道你说 web.config 中的一切似乎都是正确的,但仍要在该服务器上再次检查:

    <add verb="GET,HEAD"
       path="ScriptResource.axd"
       type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
       validate="false"/>
    

    &lt;httpHandlers&gt; 元素中。

    如果存在,则在 IE7 中查看源代码,并获取 ScriptResource.axd 脚本引用 URL 之一,然后将其粘贴到浏览器中,然后查看返回的内容。

    【讨论】:

      【解决方案3】:

      信不信由你,但清空 Internet 临时文件解决了这个问题。我讨厌这样的事情!

      【讨论】:

        【解决方案4】:

        当我们迁移到 AJAX 控件工具包的新版本时,我遇到了这个错误,并且当我重建时,该库的新 dll 没有正确传播出去。所以清除临时文件也是我必须做的。

        【讨论】:

          【解决方案5】:

          您是否在使用 AJAX 工具包脚本管理器的“组合脚本”功能?众所周知,它会导致某些浏览器/代理出现问题,从而导致您所描述的错误。我认为它在 3.5 中默认启用,因此您可能希望关闭它并查看您的问题是否仍然存在。

          【讨论】:

            【解决方案6】:

            没有一个建议对我有用,但是当在&lt;system.web&gt; 下添加以下内容时,它起作用了!

            <httpHandlers>
               <remove verb="*" path="*.asmx"/>
               <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
               <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
               <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
              </httpHandlers>
            
              <httpModules>
               <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
              </httpModules>
            

            【讨论】:

              【解决方案7】:

              尝试将您的javascript代码放在&lt;asp:ToolkitScriptManager&gt;下方

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-01-20
                • 2010-11-05
                • 2011-12-06
                • 2010-12-27
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多