• Ajax 'sys'未定义


    首先在百度和Google中搜索"sys 未定义"这个关键字,你会发现能搜到万千上万条相关的记录,但是总结问题根源不外下面几种。而我遇到似乎还比较特别,我没有在网上找到相应的解决方法。
    首 先,我们看一下网上出问题的同志们虽说都是"Sys 未定义",但是情况却不尽相同,有的人使用的是Atlas版本,有的使用的Asp.net ajax Beta,有的则是正式发行版Asp.net ajax Beta,所以解决的方法也有区别了。下面简单归纳一下现有的几种方法:
    1、Web.config配置问题:
    将Web.config中的相关节配置成如下,然后重新编译你的程序:
    程序代码 程序代码

    <httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler" validate="false"/>
    </httpHandlers>
    <compilation debug="true">
    <assemblies>
    <add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </assemblies>
    </compilation>

    如果还有错误,试着把<asp:ScriptManager id="ScriptManager1" runat="server" AsyncPostBackTimeout="200" />写在紧随<form>标记内

    2、权限问题:
    匿名用户无法访问 axd文件时,就会造成此类错误,关于这个的讨论大家可以看看 《Asp.net Ajax 中的脚本错误: Sys未定义 的解决方法》,在这里作者有详细的讨论

    3、IIS的问题,由于IIS版本问题也可能导致此类错误,比如你用的服务器操作系统是2000 server等等,你需要把它们升级到最新版本,这主要是针对IIS的升级。Win2003用户可以从下面这个地址下载到相关的补丁http://download.microsoft.com/download/7/b/1/7b1f473c-547d-4196-b00d-bf3aa2a3e898/WindowsServer2003-KB912812-x86-CHS.exe (建议你安装sp2并实时更新升级)
    相关讨论大家还可以看一下这儿的讨论:博客园——http://www.cnblogs.com/ltc31/archive/2006/09/20/510003.html

    4、类库问题:
    如果真是这儿的问题应该解决起来就比较简单了,你只需要安照下面的步骤做即可
    http://ajax.asp.net/downloads/beta/default.aspx?tabid=47&subtabid=471 下载一个库文件然后解压到X:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025 (x代表你安装路径盘符)
    即可

    5、有人提到用IP访问就会有问题,用Localhost或者域名就正常,这儿我估计是缓存的问题,可以更新一下缓存看看是不是能够解决

    6、另外就杀毒软件的问题了,如果你的杀毒软件比较敏感的话也可能会杀掉了某些js程序导致此类问题的产生

    7、当然了,你首先得检查一下你的浏览器没有禁止javascript脚本才行(这个应该最早确认)

    8、 我自己解决办法:我在试了上面几种方法之后都没有很好地解决,于是我就把所有的Asp.net Ajax的东东全部删除,包括ToolKits,然后再从asp.net上重新下载最新版本的Ajax安装之,发现问题简简单单地解决了。安装成功后,在 VS的工具箱里分别多了Ajax Extions和Ajax ToolKits两个选项卡,之后我安装后是没有的…… 大家不妨也试一下,按理说成功安装完成之后就可以正常使用的

    9、程序本身的问题:如果你在程序中有自己的Javascript代码的话,你需要仔细检查一下客户端执行后的代码情况,看看是不是某些变量在未定义前就使用了,特别要注意加载的顺序,总之这也是一个造成sys 类型未定义的一个原因
  • 相关阅读:
    protobuf 一个c++示例
    protobuf 之 MessageLite 接口摘录
    export setenv
    Centos java 安装
    C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
    centos 安装tkdiff
    Redis 入门指南
    VB.NET+三层 机房收费系统之组合查询
    Android studio 插件之 GsonFormat (自己主动生成javabean)
    ubuntu14.04恢复系统默认中文字体
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/805298.html
Copyright © 2020-2023  润新知