知识大全 jQuery调用AJAX时Get和post公用的乱码

Posted

篇首语:坚硬的城市里没有柔软的爱情,生活不是林黛玉,不会因为忧伤而风情万种。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 jQuery调用AJAX时Get和post公用的乱码相关的知识,希望对你有一定的参考价值。

jQuery调用AJAX时Get和post公用的乱码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一个网站的设计 不管是注册登录还是分页查找 都需要提交参数到服务器以便得到所需的页面数据 为了减少用户因刷新页面带来的煎熬 ajax诞生 但是初学者进行项目开发时 会遇到一个很烦人的问题 中文乱码   下面我就通过一个简单的实例来告诉大家哪些地方可能会导致乱码 我们需要通过什么方式来解决   我们这个实例主要实现用户注册时用户名是否正确(已存在) 在焦点移开username文本text时 对username进行异步提交并由servlet进行提取判断 并将结果返回页面做出相应提示   第一步 新建一个web工程(默认GBK格式) 取名jQuery_Ajax 在其WebRoot目录下新建js文件包 将jquery js放于其中     第二步 在src下创建servlet包 并编写Vali java   代码如下: package servlet;  import java io IOException;  import java io PrintWriter;  import java net URLDecoder;  import javax servlet ServletException;  import javax servlet importjavax servlet importjavax servlet public class Vali extends HttpServlet   @Override  protectedvoid service(HttpServletRequest request HttpServletResponse response)  throwsServletException IOException   StringuserName = URLDecoder decode(request getParameter("userName") "utf ");  System out println(userName);  response setContentType("text/;charset=utf ");  PrintWriter pw =response getWriter();  if(userName equals("张三"))  pw println("错误");  else  pw println("正确");          从可从代码看出 含有编码格式的语句便是解决乱码的办法之一   在代码中注意 URLDecoder decode(request getParameter("userName") "utf ")——将页面传来的数据进行格式转换并提取  response setContentType("text/;charset=utf ")——将响应返回值进行utf 编码后返回页面  特别注意 中的转换需写在本方法内一切的response之前 否则可能失效  本servlet对数据的格式编码只适合Post方法 若提交方式为GET则提取页面数据的代码如下   复制代码 代码如下: request setCharacterEncoding("utf ");  StringuserName = request getParameter("userName");  userName= new String(userName getBytes("iso ") "utf ");    第三步 编写简单注册页面ajax jsp  代码如下: <%@ page language="java"import="java util *" pageEncoding="utf "%>  <%  String path = request getContextPath();  String basePath =request getScheme()+"://"+request getServerName()+":"+request getServerPort()+path+"/";  %>  <!DOCTYPE HTML PUBLIC " //W C//DTDHTML Transitional//EN">  <>  <head>  <base href="<%=basePath%>">  <title>My JSP ajax jsp starting page</title>  <meta equiv="pragma" content="no cache">  <meta equiv="cache control" content="no cache">  <meta equiv="expires" content=" ">  <meta equiv="keywords"content="keyword keyword keyword ">  <meta equiv="description" content="This is my page">  <!   <linkrel="stylesheet" type=text/csshref="styles css">  >  <scripttype="text/javascript"src="js/jquery js"></script>  <scripttype="text/javascript">  function vali()  $ ajax(  type:"POST"   url:"/jQuery_Ajax/Vali"   data:encodeURI(encodeURI("userName="+$(":text") val()))   success:function(data)  $("span") text(data);    );    </script>  </head>  <body>  用户名:<inputtype="text" name=userNameonblur="vali();"/><span></span><br/>  密码:<inputtype="password" name=password />  </body>  </>    在代码中注意 页面要设置为utf 且引入jquery js  ajax通过POST方法传递数据 注意data的设置 将返回数据填入span标签   如果使用GET方法传递页面数据 js代码如下    代码如下: function vali()  $ ajax(  type:"GET"   url:"/jQuery_Ajax/Vali"   data:encodeURI("userName="+$(":text") val())   success:function(data)  $("span") text(data);    );      最后一步 在web xml配置servlet和映射  代码如下: <servlet>  <description>This is the description of my J EEponent</description>  <display name>This is the display name of my J EEponent</display name>  <servlet name>Vali</servlet name>  <servlet class>servlet Vali</servlet class>  </servlet>  <servlet mapping>  <servlet name>Vali</servlet name>  <url pattern>/Vali</url pattern>  </servlet mapping>    经过以上代码的编写 本注册验证的项目已完成 将其部署至tomcat并通过网页访问   最后总结大神的jQuery乱码问题解决方法   检查页面编码 将页面编码设置为utf 如下   <meta equiv="content type" content="text/;charset=utf ">  检查servlet 在doPost或doGet方法中添加如下代码   response setContentType("text/xml;charset=utf ");  修改tomcat文件 在TOMCAT_HOME/conf/server xml文件中增加URIEncoding=”utf ”:  <Connector port=" "protocol="HTTP/ " connectionTimeout=" " redirectPort=" "URIEncoding="utf "/>  在工程中新增过滤器 将编码方式设置为utf   经过以上四步操作后 问题依旧   检查ie的 header 查看contentType字段 如下   contentType:"application/x form urlencoded"  .检查firefox的 header 查看contentType字段 如下   contentType:"application/x form urlencoded;charset=UTF "  对比 两步 问题出现   修改jQuery x x js文件 将  contentType:"application/x form urlencoded"改为下面的代码  contentType:"application/x form urlencoded;charset=UTF "    cha138/Article/program/Java/Javascript/201311/25494

相关参考

知识大全 asp.net中使用jquery的ajax来post数据的树控件

   我相信大部门的net开发人员还在完全使用框架开发或者有一部分人是和mvc项目都有在做对于传统的如果要有好的体验那么ajax效果当然不可少…  &

知识大全 表单提交中Get和Post方式的区别

表单提交中Get和Post方式的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  get是从服

知识大全 处理GET和POST请求方法问题

PHPWeb开发学习实录:处理GET和POST请求方法问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 asp中get post提交表单区别

  asp教程中getpost提交表单区别  Get和Post方式的区别有点  get是从服务器上获取数据post是向服务器传送数据  get是把参数数据队列加到提交表单的ACTION属性所指的URL

知识大全 ASP.NET的GET和POST的区别

ASP.NET的GET和POST的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 ASP.NET中Get和Post的用法

ASP.NET中Get和Post的用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  单form

知识大全 解析curl提交GET,POST,Cookie的简单方法

解析curl提交GET,POST,Cookie的简单方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 你的jquery ajax无效和你的jquery引入路径有关

当你发现你的jqueryajax无效的时候不妨使用firebug调试一下这时你会发现提示"$"无效为什么会有这种提示呢?可能是你引入jqueryjs的路径有问题   Jquery不必多说你能

知识大全 jQuery封装的获取Url中的Get参数

jQuery封装的获取Url中的Get参数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  js的

知识大全 探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行

探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起