ajax post 提交数据 乱码问题 请高手指教
我的代码如下<scriptlanguage="javascript">functiontesthasSubmit(){//alert();varto_id=$('TO_I...
我的代码如下<script language="javascript">
function testhasSubmit()
{ //alert();
var to_id=$('TO_ID').value;
var color=$('COLOR').value;
var quiet=$('QUIET').value;
var message=$('MESSAGE').value;
var chat_id = $('CHAT_ID').value;
var to_name = $('TO_NAME').value;
var user_name=$('USER_NAME').value;
var url="input.php";
var postStr="MESSAGE="+message+"&CHAT_ID="+chat_id+"&TO_NAME="+to_name+"&USER_NAME="+user_name+"&QUIET="+quiet+"&TO_ID="+to_id+"&COLOR="+color;
postStr=encodeURI(encodeURI(postStr));
var ajax = false;
//url=encodeURI(url);
// url=encodeURI(url);
if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType)
{
ajax.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{}
}
}
if (!ajax)
{
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
ajax.open("POST", url, true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gb2312");
ajax.send(postStr);
ajax.onreadystatechange = function()
{
if (ajax.readyState == 4 && ajax.status == 200)
{
parent.chat_view.location.reload();
}
}
}
</script> 展开
function testhasSubmit()
{ //alert();
var to_id=$('TO_ID').value;
var color=$('COLOR').value;
var quiet=$('QUIET').value;
var message=$('MESSAGE').value;
var chat_id = $('CHAT_ID').value;
var to_name = $('TO_NAME').value;
var user_name=$('USER_NAME').value;
var url="input.php";
var postStr="MESSAGE="+message+"&CHAT_ID="+chat_id+"&TO_NAME="+to_name+"&USER_NAME="+user_name+"&QUIET="+quiet+"&TO_ID="+to_id+"&COLOR="+color;
postStr=encodeURI(encodeURI(postStr));
var ajax = false;
//url=encodeURI(url);
// url=encodeURI(url);
if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType)
{
ajax.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{}
}
}
if (!ajax)
{
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
ajax.open("POST", url, true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gb2312");
ajax.send(postStr);
ajax.onreadystatechange = function()
{
if (ajax.readyState == 4 && ajax.status == 200)
{
parent.chat_view.location.reload();
}
}
}
</script> 展开
3个回答
展开全部
var postStr="MESSAGE="+message+"&CHAT_ID="+chat_id+"&TO_NAME="+to_name+"&USER_NAME="+user_name+"&QUIET="+quiet+"&TO_ID="+to_id+"&COLOR="+color;
可能存在url中文乱码。
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
可能存在url中文乱码。
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
展开全部
ajax提交的数据应该都是utf-8编码的,如果在index.php里面接受到的数据是乱码的话需要通过iconv转换一下, iconv('utf-8','你的编码格式', $_POST['postStr'])
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于传递的参数的中文情况,URL要求必须编码,如果是Java语言实现如下:
编码:URLEncoder.encode(aURLFragment, "UTF-8");
解码:URLDecoder.decode(aURLFragment, "UTF-8");
编码:URLEncoder.encode(aURLFragment, "UTF-8");
解码:URLDecoder.decode(aURLFragment, "UTF-8");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询