求助请各位使用过 Ajax 的朋友帮忙,我使用 AjaxPro2.Dll (下载http://ajaxpro.info/ 中9[1].2.17.1_DLL的版本)作了一个调用后台的实例,总是出“缺少对象”的异常,请帮我看一些是代码问题(我自认为没有问题);还是AjaxPro2.Dll 的问题,那如何解决,或者下载更好的 AjaxPro2.Dll 。
1、Web.config 配置......
<httpHandlers>
   ......
   <add verb="POST,GET" path="AjaxPro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
......
2、后台函数namespace ajax_test
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(ajax_test._Default));        }
        [AjaxPro.AjaxMethod()] 
        public string TestData()
        {
            string msg = "一般服务人员@J01410202200904230002@5A647FA4@梦拉丽沙@J0111010000001@2009-04-28 09:23:19@2009-04-28 10:37:55@记录‘梦拉丽沙’成功";
            return msg;
        }
    }
}3、前台代码<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ajax_test._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>    <script language="javascript" type="text/javascript"> 
        function readcard() {
            var str = "";
            //var dstr = new Array();
            str = ajax_test._Default.TestData(); // 调用后台函数
            //dstr = str.value.split("@", 8);
            //alert(dstr[0]);
        }
    </script></head>
<body>
    <form id="form1" runat="server">
    <div> 
        <input id="Button1" type="button" value="Ok" onclick="return readcard();" />
    </div>
    </form>
</body>
</html>4、运行结果1).net 系统提示“Microsoft JScript 运行时错误:缺少对象”2)代码定位到 core.ashx(动态) 文件中,其代码为:         timeout: function() {
this.duration = new Date().getTime() - this.__start;
var r = this.onTimeout(this.duration, this);    // <<<<<<<  定位到此行
if(typeof r == "undefined" || r != false) {
this.abort();
} else {
this.timeoutTimer = setTimeout(this.timeout.bind(this), AjaxPro.timeoutPeriod);
}
},

解决方案 »

  1.   

    http://topic.csdn.net/u/20090407/09/fbe2bfd4-e9ba-47c6-a281-a9fe6bb28d55.html
      

  2.   

    看了 Sandy945  所给的解决方法,我也下载 Ajax 的代码修改 core.js 文件 timeout: function() 中的
    var r = this.onTimeout(this.duration, this);

    var r = this.timeout(this.duration, this);
    并修改 Web.config 为
    ...... 
    <httpHandlers> 
      ...... 
      <add verb="POST,GET" path="AjaxPro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/> 
    </httpHandlers> 
    ...... 
    编译生成 AjaxPro.DLL ,将它复制到项目下,运行项目,不提示“缺少对象”异常,但出现“堆栈溢出”,是否还有其它需要修改? 
     
      

  3.   

    AjaxPro2 返回DataSet 时出现" 缺少对象"错误的问题解决办法1. web.config配置。 以下为引用的内容:
        <httpHandlers> 
             <add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" /> 
        </httpHandlers>       [注意] 
    以下为引用的内容:
    可在web.config中配置<ajaxNet>段,中间包括<ajaxSettings><configuration/></ajaxSettings> 
        <configuration/>段中包括: 
        操作日期定义: 
             <renderNotASPAJAXDateTime/> 
             <renderDateTimeAsString/> 
             <noUtcTime/> 
        其它: 
             <objectExtendPrototype/> 
             <appCodeQualifiedFullName/> 
             <allowNumberBooleanAsString/> 
             <sessionStateDefaultNone/> 
             <includeMsgPrototype/> 
             <renderJsonCompliant/> 
             <useSimpleObjectNaming/> 
        不过日期转换后和转换前都会在后面带一个‘Z’(例:2000-01-01 01:01:01Z),否则转换失败。    2. C#后台代码块: 
    以下为引用的内容:
        namespace MyNameSpace{ 
            public class MyClass : System.Web.UI.Page{ 
               protected void Page_Load(object sender, EventArgs e){ 
                   AjaxPro.Utility.RegisterTypeForAjax(typeof(MyClass)); 
               }            [AjaxPro.AjaxMethod] 
               public string MyMethod(string arg01,string arg02){   //注意,此处的方法必须声明为public类型。
                   return (arg01 + arg02); 
               } 
            } 
        } 
     
      3. JS代码块: 
    以下为引用的内容:
        /** 
        * 调用服务器端方法的JS函数。 
        */ 
        function demo(){ 
             MyNameSapce.MyClass.MyMethod(arg01,arg02,callable_method);  //callable_method为下面定义的函数。 
        } 
        /** 
        * 异步回调函数,如果不用这方法,则会出现缺少对象错误, 
        * 虽然不影响使用,但程序开发阶段时,很烦燥。 
        */ 
        function callable_method(v){ 
             var result = v.value; 
             alert(result); 
        } 
       AjaxPro中可以用到Json的序列化和反序列化。(AjaxPro.JavaScriptSerializer和AjaxPro.JavaScriptDeserializer) 
      

  4.   

    参考:
    http://www.jzquan.com/a/prog/asp/200812253946.html
      

  5.   


    晕,不是修改
    var r = this.timeout(this.duration, this); 是加上try catchhttp://hi.baidu.com/%D2%F4%C0%D6%BF%E1gg/blog/item/f2590699a49b0d0f6f068c7b.html