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

关于jQuery.ajax 进入success后,返回错误的问题,求各位大神帮助
代码如下:
===========================================================
     function Form(){
            jQuery.ajax({
            url: $("#Form").attr('action'),
            data: $('#Form').serialize(),
            type: "POST",
            timeout: 30000,
            success: function(msg)
            {
                console.log("ajax success");
                console.log(msg);
            }

========================================================
能进入success里面,但是我通过firebug的控制台,看到msg的内容是
{"ajaxResult":"fail","errorStack":"java.lang.NullPointerException\n\tat
,"msg":null}

好像是data的原因,但是又不太确定。

------解决方案--------------------
这个是不ajax的错误 是后台代码出错了,只能在后台照原因。
------解决方案--------------------
一看就是data,你服务器就发出这个data,
------解决方案--------------------
你的动态页返回200状态,标准json格式字符串就不会执行error回调

至于你动态页加了try..catch容错配置客户端是扑捉不到的,你可以通过msg来判断

success: function(msg)
{
if(msg.ajaxResult=='fail')alert('出错鸟'+msg.errorStack)
else  console.log("ajax success");

                console.log(msg);
}
------解决方案--------------------
版主说的很对。
------解决方案--------------------
 jQuery.ajax({
dataType:'json',
            url: $("#Form").attr('action'),
            data: $('#Form').serialize(),
            type: "POST",
            timeout: 30000,
------解决方案--------------------
那不就是出错了,然后输出错误信息。楼主你到底要干嘛。。

NullPointerException
------解决方案--------------------
alert($('#Form').serialize());
检查一下表单数据是否取到
还需检查数据格式是否符合服务端要求
------解决方案----------------