知识大全 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方式的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! get是从服
PHPWeb开发学习实录:处理GET和POST请求方法问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
asp教程中getpost提交表单区别 Get和Post方式的区别有点 get是从服务器上获取数据post是向服务器传送数据 get是把参数数据队列加到提交表单的ACTION属性所指的URL
ASP.NET的GET和POST的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
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参数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! js的
知识大全 探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起