是这样的,因为在使用jquery的时候使用function validateUser(){
   var userName = $("#username").val();
   $.ajax({
      type:"post",
      url:"UserAction",
      data:{"userName":userName},
      success:function(bool){
         if(bool)
            alert('用户已经存在');
         else{
            alert('用户名可以使用');
         }
      }
   });
}在jsp页面中有一个文本框,id为username,这样做有错么。

解决方案 »

  1.   

    function buyPro(id) {
    $.ajax( {
    "url" : "../main/buyCart.action?cid=" + id,
    "type" : "get",
    "success" : function(ok) {
    var obj = document.getElementById("cartinfo_" + id);
    if (ok) {
    obj.style.color = "red";
    obj.innerHTML = '已经购买过该商品';
    } else {
    obj.style.color = "green";
    obj.innerHTML = '购买成功';
    }
    setTimeout(function() {
    obj.innerHTML = "";
    }, 1000);
    },
    "error" : function(xhr, textStatus, errorThrown) {
    alert('系统出错');
    }
    });
      

  2.   

    你的代码没错data:{"userName":userName}, 这个对象, userName不用引号
    {userName:userName}
      

  3.   

    支持#4的说法,可能问题就出在那个data.
      

  4.   

    function validateUser(){
      var userName = $("#username").val();
      $.ajax({
      type:"post",
      url:"UserAction",
      data:{"userName":userName},
      dataType:'json',
      success:function(bool){
      alert(bool);
      if(bool)
      alert('用户已经存在');
      else{
      alert('用户名可以使用');
      }
      }
      });
    }这样试一下
    不过得看你调用的action 返回来的是否也是json格式呢?
      

  5.   

    data:{userName:userName},
      

  6.   

    public void yanzheng() throws IOException{
    boolean boo = authorBiz.getAuthor(userName);
    ServletActionContext.getResponse().getWriter().print(boo);
    ServletActionContext.getResponse().getWriter().close();
    }
    这样写页面上函数success:function(bool){}中的bool能得到值么?
    同样的userName也是action中的属性,提供getter/setter方法,请问一下json格式是什么格式。
      

  7.   

    你的程序只是去判断用户是否存在,服务器端返回个字符串做下判断就行了,就用html数据返回类型默认也是html类型的,如果需要返回对象就用json类型
      

  8.   

    action怎么返回到页面?代码怎么写呢。
      

  9.   

    如果是返回html类型的需要写上:
    response.setContentType("text/html;charset=utf-8");
    如果是返回的json类型需要写上:
    resp.setContentType("application/json;charset=utf-8");为了防止浏览器缓存带来的麻烦你可以设置不缓存或者在你的url请求后面加上个随机数
    1,服务器端设置返回头信息:
    response.setHeader("pragma", "no-cache");
    response.setHeader("cache-control", "no-cache");就response.getWriter().print(要返回的内容);
      

  10.   

    不如改成get方式从后台取username来验证用户是否已存在。
     function validateUser(){
       var username = $("#username").attr("value");
       var paras="?username="+ username;  $.ajaxSetup({ cache: false });
     var url="UserAction" + paras;
     $.getJSON(url,null,function call(data){
         promptMessage(data);
     $.ajaxSetup({ cache: true });
          });
     } function promptMessage(data){  var counter = data.num;  //找到的username数
      if(counter!=0){
    $("#username_msg").removeClass("prompt")
    $("#username_msg").addClass("warningPrompt");
    $('#username').val(''); $('#username').focus();  }else {
    $("#username_msg").removeClass("warningPrompt")
     $("#username_msg").addClass("prompt");
      }  $("#username_msg").html(data.msg);}
    UserAction 里返回 (data.msg data.num  json 格式)
    json 可以用gson或 json-lib 来生成如果username exists, msg="username not available"
    otherwise   msg="Congratulation! Username available";抛砖引玉,给你个思路
      

  11.   

    out.println("");
    可以是一个String 
    也可以是是一个json(对象)
    也可以使一个DOM   
    貌似struts是  忘了 你试试return能行不!
      

  12.   

    return只能返回根据result节点的页面值
      

  13.   

    原来我忘记写“response.setContentType("text/html;charset=utf-8")”这段了。难怪没结果,谢谢啦。