$("#Button1").click(function () {
        //alert($(".xingming .sex:checked").val());
        $.ajax({
            url: '../../AjaxData/huiyinbi/Insert_huiyinbi.ashx',
            data: {
                UserName: $(".xingming .input").val(),
                UserTitle: $("#biaoti .input").val(),
                UserContent: $(".neirong .input").val(),
                UserSex: $(".xingming .sex:checked").val(),
                UserMail: $("#mail").val()
            },
            error: function (result) {
                alert(result.responseText);
            },  
            type:'post',
            success: function (data,text) {
                var html_content = "<div class='content'>";
                html_content += "<div class='content_left_ip'><span>ip:192.268.0.1</span></div></div>";
                html_content += "<div class='content_content'><div class='content_content_top'><span>发表于:&nbsp;2010-10-1 08:35&nbsp;|</span><span class='dangqianlou'>当前楼</span></div>";
                html_content += "<div class='content_content_bottom'><div class='content_title'><span>" + $("#biaoti .input").val() + "</span></div><div class='content_content_bottom_content'>";
                html_content += "<p>" + $(".neirong .input").val() + "</p></div></div></div></div>";                $(".main .content:eq(0)").before(html_content);
                content_content = $(".content_content");
                cover_content();
                close();
            },
            dataType: "json"
        });
    });
后台执行没有任何问题;正常写入数据库,
并且成功返回"{{success:'true'}}"json字符串;
可为什么不执行success方法,而是回调error方法呢;
就是有错误了?
错在哪呢?;

解决方案 »

  1.   

    你的json数据格式可能有误。
    jQuery会对回传数据进行格式检查~~~如果错误也会当做error处理的
      

  2.   

    在success的function方法的参数你写出来是做什么用的   没有找到下面引用到的内容   json格式如果是是在js中应用的时候   显示的是object  而不是字符串   在js中接收后台反会的json数据的时候   后台显示为string类型 但是在js中接受的时候  需要用  eval来进行转换    这个错误 你可以调试一下   在success中    close()的方法前面  你alert一下  如果在页面上  没有弹出对话框   那80%的的可能会是你json数据格式错误
      

  3.   

    后台返回的是json数据啊;
    是"{success:'true'}";
    Jquery是怎么判断什么时候执行success回调函数的啊?;
    得需要后台返回什么东西吗?;
    还是说必须得返回json数据才执行success函数?;
      

  4.   

    首先,两个参数不写出来也错,写出来不用也不会影响;
    然后,我已经将datatype:'json'了;
    这样就是说是返回json数据;
    那你这样说后台只能返回字符串了?;
    那这样说Jquery是怎么判断什么时候调用success回调函数的呢?
    那就是说返回字符串就是成功了啊;应该调用success回调函数才是啊?;
      

  5.   

    发现错误了;
    把datatype删了就能执行success回调函数了;
    难道后台返回的{success:'true'}
    这个解析成json数据会有错误吗?
      

  6.   


    这句没有错啊~
    可能是你写{{success:'true'}}了吧
      

  7.   

    后台不要跳转,用response.getWriter().print("{success: true}");
    return null;不要跳转页面
    ajax接到值eval下就可以了
      

  8.   

    没有错;
    是之前我提问的时候写错了
    我本来就写成{success:'true'}的;
    知识设置了datatype:json
    不起作用;
    回调函数传回来的解析成json不成功;
    所以调用了error
    疑问就在这了;
    为什么解析json不成功呢?
    {success:'true'}是json数据是毫无疑问的;
      

  9.   

    用ext的时候json比较随意;原来是jquery的datatype对json的格式这么严格;
    在ext里{success:'true'}也是对的;
    谢谢你了;
    结贴给分;