url=url+"ArticleServlet"; 
postStr = "t="+workType+"&articleId="+articleId+"&topic="+topic+"&content="+content+"&memberId="+memberId+"&memberName="+memberName;
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
xmlhttp.send(postStr);1 post提交方式应该提交数据量很大才是啊,而现在当提交数据大的时候,不能完全提交,只能有一部分提交,好像是大小有限制,大家帮忙看看这代码有什么问题
2 中文会有乱码,该怎么修改?

解决方案 »

  1.   

    1.建议你用一些js框架,例如:JQuery 之类的,里面有国际化的包,可以直接解决。2.中文乱码问题一般要在客户端加密两次用ecodeURI(ecodeURI(“中文”))而在java中用net包下的相关类解密一次就可以了。因为request的时候已经自动解密一次。
    其实还是建议你用开源的js框架我没有遇到大数据的提交不完全的问题。
      

  2.   

    两端是指提交数据的jsp和服务器端的servlet吗?
    jsp:
    <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
    servlet:
    response.setContentType("text/html;charset=GBK");
    这样都写成GBK形式的,也不行的啊 怎么回事?
      

  3.   

     我说一下几种解决乱码的方式:
    你看一下对你有没有用:
    1.在页面设置编码方式:UTF-8
    2.写一个字符编码过滤器,过滤器中写下如下代码即可://将对象转换为HTTP
    HttpServletRequest request = (HttpServletRequest)arg0;
    HttpServletResponse response = (HttpServletResponse)arg1;
    //设置字符编码属性
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    3.在tomcat设置端口号的地方的后面 写下如下代码:
    URIEncoding=“UTF-8”
    4.在传参数之前,先将字符转码:
    URLEncoder.encode("要传递的参数","UTF-8");
    5.先将字符转换成进制码 然后要用的时候在转换回来
    。。
      

  4.   

    找到问题了 原来是fckediter编辑器生成的<p>&nbsp;</p>就是一行空字符不能够用ajax提交,有没有解决的办法?
      

  5.   


    在ajax下最好把fck中的内容加密后再提交,否则当解析数据的时候看到有“&”的就会被截断。或者你改用 form 表单提交,不用ajax。我建议你用form表单提交,因为如果你用ajax加密或者转义&符号的话,在效率上也会受到影响。其实,ajax取数据库的优点更多与他提交数据。ajax提交数据做个作为条件判断还可以。
      

  6.   

    memberName 应该编码一下再使用。
    或者你用prorotype等现成的框架,默认是UTF-8编码提交