`

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

    博客分类:
  • .NET
阅读更多

 今天研究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="true" 可将调试符号插入

            已编译的页面中。但由于这会

            影响性能,因此只应在开发过程中设置

            此值。

            Visual Basic 选项:

            设置 strict="true" 将禁止所有会导致

            数据丢失的类型转换。

            设置 explicit="true" 将强制声明所有变量。

        -->

  <authorization>

   <allow users="?"/>

  </authorization>

  <httpRuntime executionTimeout="160"/>

  <sessionState timeout="120"/>

  <compilation debug="true" strict="false" explicit="true">

   <assemblies>

    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

    <add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

    <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

    <add assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.ReportSource, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.Enterprise.Framework, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.Enterprise.Desktop.Report, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

    <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>

    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

    <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

    <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

    <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

    <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

    <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

    <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

    <add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>

   <buildProviders>

    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

   </buildProviders>

  </compilation>

  <pages>

   <namespaces>

    <clear/>

    <add namespace="System"/>

    <add namespace="System.Collections"/>

    <add namespace="System.Collections.Specialized"/>

    <add namespace="System.Configuration"/>

    <add namespace="System.Text"/>

    <add namespace="System.Text.RegularExpressions"/>

    <add namespace="System.Web"/>

    <add namespace="System.Web.Caching"/>

    <add namespace="System.Web.SessionState"/>

    <add namespace="System.Web.Security"/>

    <add namespace="System.Web.Profile"/>

    <add namespace="System.Web.UI"/>

    <add namespace="System.Web.UI.WebControls"/>

    <add namespace="System.Web.UI.WebControls.WebParts"/>

    <add namespace="System.Web.UI.HtmlControls"/>

   </namespaces>

  </pages>

  <!--

            通过 <authentication> 节可以配置 ASP.NET 使用的

            安全身份验证模式,

            以标识传入的用户。

        -->

  <authentication mode="None"/>

  <!--

            如果在执行请求的过程中出现未处理的错误,

            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,

            开发人员通过该节可以配置

            要显示的 html 错误页

            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

        -->

  <httpHandlers>

   <add path="CrystalImageHandler.aspx" verb="GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>

   <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>

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

 </system.web>

</configuration>

 

 今天研究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>
 
分享到:
评论

相关推荐

    sys未定义的解决方法

    在开发Web应用程序时,可能会遇到“sys未定义”的错误,尤其是在使用Ajax与ASP.NET结合的场景中。这种错误通常是因为系统未能正确引用或加载Ajax相关的库导致的。本文将详细介绍如何解决“sys未定义”的问题,并通过...

    Ajax.net Sys未定义错误解决办法

    在讨论解决*** Sys未定义错误的问题前,首先需要了解Ajax技术在*** 2.0系统中的应用基础。Ajax(Asynchronous JavaScript and XML)技术允许网页实现异步数据更新,提升用户体验,避免了传统Web应用中的“整页刷新”...

    vs2008中Ajax错误:Sys未定义

    ### VS2008中Ajax错误:“Sys未定义”的解决方法 #### 一、问题概述 在使用Visual Studio 2008进行Web开发时,可能会遇到一个常见的错误:“Sys未定义”。这个问题通常出现在尝试使用ASP.NET AJAX框架时,由于某些...

    解决asp.net ajax sys未定义的解决方法

    *** Ajax "Sys未定义"错误是一个常见的问题,它发生在***应用程序中使用AJAX时,通常会因为不同的原因导致Sys对象无法被正确定义或访问。要解决这个问题,需要根据具体情况进行排查和解决。 1. Web.config配置问题...

    完美解决IE9浏览器出现的对象未定义问题

    在本文中,我们将深入探讨如何完美解决在Internet Explorer 9(IE9)浏览器中遇到的“对象未定义”错误。这种问题通常是由于浏览器的兼容性问题、JavaScript代码执行顺序、或者资源加载顺序不当所引起的。以下是一些...

    JSON 对象未定义错误的解决方法

    今天在使用Moodle的时候, 突然发现在IE下进入课件的时候提示”JSON 未定义”错误信息. ...以上就是小编为大家带来的JSON 对象未定义错误的解决方法的全部内容了,希望对大家有所帮助,多多支持软件开发网~

    json2.js json未定义的解决方案!

    本文将深入探讨在使用json2.js时遇到"json未定义"错误的解决方案,以及如何正确使用json.parse方法。 首先,"json未定义"的错误通常发生在尝试调用JSON对象的函数,如`json.parse()`或`json.stringify()`时,但JSON...

    php 变量未定义等错误的解决方法

    在PHP开发过程中,变量未定义是一种常见的错误类型。这种错误通常发生在尝试使用一个未被声明或初始化的变量时。由于PHP的动态类型特性,开发者往往容易忽略对变量的明确声明,从而导致此类错误。错误等级的设置对于...

    Matlab编程的常见错误与解决方法

    在编写 MATLAB 代码时,我们经常会遇到一些常见的错误,本文旨在总结和解决 MATLAB 编程中的常见错误,并提供相应的解决方法。 一、语法错误 MATLAB 编程中,语法错误是最常见的一类错误。语法错误可以分为拼写...

    Codewarrior编译出现的错误以及解决方法

    文档《单片机技术初步实践》提供了有关Codewarrior在编译过程中可能遇到的C语言语法错误及其解决方法。以下是针对文档中列出的具体错误及其解决方法的详细说明。 1. C1000错误:非法的标识符列表出现在声明中 描述...

    VC运行库,RobotStudio出现“发现未定义错误”

    在使用RobotStudio时,有时可能会遇到“发现未定义错误”的问题,这通常是因为缺少必要的运行时库支持。VC运行库是Microsoft Visual Studio开发的应用程序所依赖的重要组件,它包含了多种版本的C++运行时库,如MSVCR...

    解决IE中JSON未定义的兼容问题

    解决IE中JSON未定义的兼容问题

    AjaxPro.2未定义解决方案

    ### AjaxPro.2未定义解决方案 #### 一、问题背景 在使用AjaxPro.2进行Web开发时,可能会遇到一个常见的问题:“Ajax对象名未定义”。这个问题通常出现在使用Internet Information Services (IIS) 作为服务器环境的...

    JSON2解决JSON未定义

    总结来说,"JSON2解决JSON未定义"意味着在不支持JSON的旧版IE浏览器中,可以通过引入JSON2.js这个库来提供JSON解析和序列化的能力,使得JSON数据能在这些浏览器中正常工作。这个知识点对于编写兼容性良好的Web应用至...

    Ajax中responseText返回的是一个页面而不是一个值

    自己在struts2中的写好了业务逻辑用response返回的内容却是... 您可能感兴趣的文章:ajax的responseText乱码的问题的解决方法jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXMLAjax request response 乱码解决

    excel提示用户定义类型未定义怎么办.docx

    Excel中用户定义类型未定义的解决方法 Excel中用户定义类型未定义是指在编译时出现的错误提示,原因是对象未正确创建或未引用相关库文件。本文将详细介绍解决此类错误的方法。 一、正确创建对象 在定义对象时,...

    vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题

    但有时会发现,在操作过程中无法对未定义的值、空值或基本数据类型(基元值,如字符串、数字等)设置反应属性,这会引发错误提示:“Cannot set reactive property on undefined, null, or primitive value”。...

Global site tag (gtag.js) - Google Analytics