求助各位js大神,我本来想用js写一个登录验证,但是使用$.post提交到处理后台之后
$.post()里面的回调函数没有被执行页面js代码如下:var params=$("form").serialize();
$.post(
"login.action",
params,
function(){
  alert("callback");
},
"json"
);Strut后台的action配置如下:<package name="doLogin" namespace="/" extends="json-default">
  <action name="login" class="LoginAction">
    <result type="json">
    </result>
  </action>
</package>我遇到的问题是:登录验证的时候正确进入到action处理类的方法之中,但是返回的时候$.post()里面的回调函数没有被执行,这是为什么呢?希望各位大神帮帮忙呀~ 急~javascriptstrutsaction

解决方案 »

  1.   

    先改成ajax 然后打印出异常看看。
      

  2.   

    动态页出错了,只有返回200状态才会执行回调,而且指定为json,jq1.4+要返回标准json格式的字符串才会执行回调,用$.ajax,看执行到error输出什么var params=$("form").serialize();
    $.ajax({url:"login.action",type:'POST',dataType:'json',data:params
    ,success:function(){
      alert("callback");
    },error:function(xhr){alert('错误\n'+xhr.response.Text);}})
      

  3.   


    error似乎也没有被调用、没有错误输出
      

  4.   

    那就是你前面的代码出问题了,ajax都没有发送,要不肯定不是执行success就是error,用firebug或开发人员工具看看,
      

  5.   


    ajax发送了请求 已经转入action处理,但是处理完之后 没有回调函数输出
      

  6.   

    你改成$.ajax了没有,只有$.ajax才能配置error
      

  7.   

    建议你先单独去测试一下你的那个url,看看对不对,有没有得到你要的数据。
      

  8.   


    $("#login").click(function(){
    var params=$("#loginForm").serialize();
    $.ajax({
    url:"/TestLib/doLogin/login",
    type:"POST",
    data:params,
    dataType:"json",
    success:function(){alert("callback");},
    error:function(xhr){alert("error");}
    });
    });
      

  9.   

    数据已经正确传到action里面去了、action里面有测试输出传入的值
      

  10.   

    $("#login")这个是button吗还是submit,submit放在表单中会提交表单用firebug或者chrome开发工具看下发出了请求没,发出返回后不执行success就会error的
      

  11.   

    你debug一下看看请求到后台没有,你再在用浏览器的调试工具,看看返回的是什么,你后面写了类型是json格式的,可能返回的内容在解析的时候出错了就不会执行回调函数。
      

  12.   

    楼主可以把ajax方法里面的===== dataType:"json",========去掉试试。