日期:2014-05-16  浏览次数:20938 次

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

 今天研究AJAX的东西,遇到“Sys未定义”的错误,在网上搜了一大通,一般都是第三个错误,我的却不是,所以很崩溃。搜到这篇文章后用方法1解决了,所以很是兴奋。由于本人的无知,弄了一上午才解决这个问题,所以特在此分享一下,希望能节约大家的生命。

?

原文链接: http://changqing.jobidc.com/document/show.aspx?id0=3844

错误:在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>节点下加入

?

<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>

 
??

解决方法4

引用了"System.Web.Extensions.dll"就ok了。

web.config配置如下:

<?xml version="1.0"?>

<!--

    注意: 除了手动编辑此文件以外,您还可以使用

    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的

     “网站”->“Asp.Net 配置”选项。

    设置和注释的完整列表在

    machine.config.comments 中,该文件通常位于

    \Windows\Microsoft.Net\Framework\v2.x\Config 中

-->

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

 <appSettings>

  <add key="CrystalImageCleaner-AutoStart" value="true"/>

  <add key="CrystalImageCleaner-Sleep" value="60000"/>

  <add key="CrystalImageCleaner-Age" value="120000"/>

 </appSettings>

 <connectionStrings>

  <add connectionString="Data Source=192.168.7.10;Initial Catalog=DyNet;Persist Security Info=True;User ID=dynetuser;Password=nmamtf" providerName="System.Data.SqlClient"/>

 </connectionStrings>

 <system.web>

  <!--

            设置 compilation debug="tru