Ajax中“Sys未定义”错误的解决方法汇总(转)

解决Ajax应用中自定义脚本出现Sys未定义错误的方法
本文介绍了在Ajax应用中遇到Sys未定义错误时,通过将获取PageRequestManager实例的语句放入函数内部、放置JS代码在ScriptManager控件之后以及在配置文件中添加特定配置来解决该问题的方法。

错误:在Ajax应用中自定义脚本时出现"Sys未定义"的错误。

解决方法1 :把取得PageRequestManager实例的语句(如:var prm = Sys.WebForms.PageRequestManager.getInstance();

)放在函数里面。

解决方法2 :把js代码放在ScriptManager控件定义之后。

原因分析:ScriptManager控件放在body中

而javascript代码放在了ScriptManager控件之前的位置

因为html是逐行加载的

由于var prm = Sys.PageRequestManager.getInstance();

在加载ScriptManager控件的js代码之前就被调用了,

所以就出现了Sys未定义的情况

解决方法3 :

在配置文件的  <system.web>节点下加入

ExpandedBlockStart.gifView Code

<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="*" 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>

 


 

 

 

转载于:https://www.cnblogs.com/rebben/archive/2011/09/28/2194920.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值