Ajax开发过程中提交获取数据的乱码问题
来源:互联网 发布:淘宝v4是什么等级 编辑:程序博客网 时间:2024/05/16 16:23
这两天在继续我的Ajax之旅。一直在抓紧步伐。
前天试验使用Ajax提交form表单到服务器,获取form信息内容出现了乱码,一时无法解决。网上有结论说是application/x-www-form-urlencoded编码的原因,我估计也是。正在寻找解决之道。
大家一起讨论讨论。
2005-12-05 11:20 补充:
通过在后台用UTF8转码的方式可以解决中文乱码问题。这种方法针对form表单提交,编码在服务器完成。代码如下:
form.jsp:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>表单提交测试</title>
<script language="javascript">
var http_request = false;
function send_request(url,poststr) {//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = processRequest;
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(poststr);
}
// 处理返回信息的函数
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
alert(http_request.responseText);
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
function form_submit() {
var f = document.form1;
var username = f.username.value;
var password = f.password.value;
var poststr = "";
if(username=="") {
window.alert("用户名不能为空。");
f.username.focus();
return false;
}
if(password=="") {
window.alert("密码不能为空。");
f.password.focus();
return false;
}
poststr = "username="+encodeURI(f.username.value)+"&password="+f.password.value;
send_request('form_handle.jsp',poststr);
return false;
}
</script>
</head>
<body>
<form name="form1" method="post" action="" onsubmit="return form_submit()">
<table width="300" border="0" cellspacing="4" cellpadding="0" style=" font-size:12pt;">
<tr>
<td width="74" height="25">用户名:</td>
<td width="220" height="25"><input name="username" type="text" id="username" size="20"></td>
</tr>
<tr>
<td height="25">密码:</td>
<td height="25"><input name="password" type="password" id="password" size="20"></td>
</tr>
<tr align="center">
<td height="25" colspan="2"><input type="submit" name="Submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
form_handle.jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
<%
String username = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF8");
String password = request.getParameter("password");
System.out.println("用户名:"+username);
System.out.println("密码:"+password);
out.println(username+"|"+password);
%>
另外,有些网友反应生成包含中文内容的XML文档返回到客户端也会出现乱码问题。建议将XML文档的编码方式改成UTF8试试看。
- Ajax开发过程中提交获取数据的乱码问题
- Ajax开发过程中提交获取数据的乱码问题
- ajax开发过程表单提交数据出现乱码和解决办法
- jQuery-Ajax提交数据中文乱码问题的解决方案
- ajax,提交数据,浏览器乱码,编码问题
- 解决kindeditor中ajax提交表单无法获取数据的问题
- 获取 客户端(浏览器)提交的数据乱码问题
- 怎样在filter中获取ajax提交的数据
- 开发过程中乱码问题的解决方案
- ajax 提交数据产生乱码的原因
- Ajax验证过程中出现的中文乱码问题
- Java开发,表单提交中发生中文乱码的问题
- 注册登录过程点滴(三):解决MVC3中使用Ajax.BeginForm会重复提交数据的问题
- Ajax $.ajax() 提交数据出现中文乱码的时候解决方法
- 使用Struts 2框架、ajax提交中文数据在后台乱码的问题
- jquery,ajax开发中遇到的中文乱码问题
- AJAX中利用POST方法向服务提交数据时乱码的解决方案
- AJAX中利用POST方法向服务提交数据时乱码的解决方案
- AJAX开发简略续一
- sqlserver阻塞(来自微软技术支持人员)
- 关于AJAX开发技巧的想法
- 《AJAX开发简略》全文打包下载
- 在对话框中动态显示位图
- Ajax开发过程中提交获取数据的乱码问题
- 男人不知道的15件事
- 手机归属地查询
- 研究Ajax Tags碰到新问题-->已经解决
- 我所看到的Ajax应用
- Why2 的下一代
- 建立各种数据库网页的大致过程 [ASP]
- 查找用英文写的有关金庸的评论
- 单点登录系统的设计与实现方案