解决方案 »

  1.   

    function send_util(uri,datasStr){
    打印出来看看
      

  2.   

    alert(datasStr)得到:%7B%22name%22%3A%22xiaoliang%22%2C%22website%22%3A%22http%3A%2F%2Fwww.xiaoliang.biz%22%7D
      

  3.   

    function main_f(){
        var per = new Object(); // 定义一个用户对象
        per.name=encodeURIComponent("xiaoliang");
        per.website=encodeURIComponent("http://www.xiaoliang.biz");
        var datasStr = JSON.stringify(per);// 请求数据转为字符串
       uri="/aaBbServlet";// 请求地址
        send_util(uri,datasStr ); // 发送信息
    }
    没必要给整个字符串用encodeURIComponent 这样会把所有的不符合url的字符串转义
      

  4.   

    问题解决了,不好意思浪费两位时间了。是我先前用了另一个博文的方法,后来没完全把代码改回来。
    不过@zzgzzg00
    如果不转义,用GSON就会报错呀,而且获得数据不完整,实际上http://www.xiaoliang.biz后面还跟了问号和其他路径,文件名...
    不仅GSON会报错,而且我获得的数据也不完整 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Enumeration<String> enu=request.getParameterNames();
    String versionReqMsg = null;
    while(enu.hasMoreElements()){
    versionReqMsg = enu.nextElement();// 取到请求信息
    }
    System.out.println(versionReqMsg);
    }最后结果:
    转义是对的的,上面的代码没错,初次写JS代码经常犯晕,还请谅解,O(∩_∩)O~
    【先说明一下,本人之前几乎没用过jQuery,ajax。json也是自己私下看过一点,所以,任意拍砖都可以】
    马上分积分!