我已经用了 encodeURI转换 但是到服务器的端得到的是一连串的框框。我不知道 var ucn=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_ucn").val(); var kw=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_kw").val(); var webRoot=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_webRoot").val(); var ucn1=encodeURI(ucn); alert(ucn1); $.post( "http://zengjf/zengjf/SearchPage.aspx", {by:by,bm:bm,bd:bd,ey:ey,em:em,ed:ed,p:pagenumber,ucn:ucn1,kw:kw,webRoot:webRoot,isAllWebSearch:isAllWebSearch}, function(msg){ alert(msg); $("#datalist").html(msg); }ucn1是转换后的然后传递给服务器,IE里面转换出来打印出来就是空的,传到后台就是一堆的框框,但是firefox里面没有问题。我很郁闷 搞了老半天还是没搞出来,谁帮帮我啊。谢谢了
传递参数时最好用escape()或者encodeURI()转换编码,这样可以保证服务器端准确接收参数,比如:
location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");
相应地,服务器端接收参数时最好解码deCode
var kw=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_kw").val();
var webRoot=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_webRoot").val();
var ucn1=encodeURI(ucn);
alert(ucn1);
$.post(
"http://zengjf/zengjf/SearchPage.aspx",
{by:by,bm:bm,bd:bd,ey:ey,em:em,ed:ed,p:pagenumber,ucn:ucn1,kw:kw,webRoot:webRoot,isAllWebSearch:isAllWebSearch},
function(msg){
alert(msg);
$("#datalist").html(msg);
}ucn1是转换后的然后传递给服务器,IE里面转换出来打印出来就是空的,传到后台就是一堆的框框,但是firefox里面没有问题。我很郁闷 搞了老半天还是没搞出来,谁帮帮我啊。谢谢了
你这个“IE里面转换出来打印出来就是空的”,说明取值就不正常了。
1.注意一下存储的编码格式和声明的charset是否对应。
2.把整个部分贴出来,看看哪里导致在IE里取值不正常。
alert(ucn1);
前面加一条
alert(ucn);
看看是什么内容
function jump(pagenumber)
{ alert("here");
var by=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_by").val();
var bm=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_bm").val();
var bd=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_bd").val();
var ey=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_ey").val();
var em=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_em").val();
var ed=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_ed").val();
var ucn=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_ucn").val();
var kw=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_kw").val();
var webRoot=$("#ctl00_m_g_52240555_d707_4a75_ae49_b6744e037986_webRoot").val();
var ucn1=encodeURI(ucn);
alert(ucn1);
// var ucn2=escape(ucn);
//
// alert(encodeURI(ucn));
var isAllWebSearch=$("#IsAllWebSearch").val();
// $.ajaxSetup({
// contentType: "application/x-www-form-urlencoded; charset=utf-8"
// });
alert(by);
alert(bm);
alert(bd);
alert(ey);
alert(em);
alert(ed);
alert(pagenumber);
alert(ucn);
alert("here is ucn1");
alert(webRoot);
alert(isAllWebSearch);
$.post(
// url: "http://zengjf/zengjf/SearchPage.aspx",
// http://localhost:13058/SearchPage.aspx
"http://zengjf/zengjf/SearchPage.aspx",
{by:by,bm:bm,bd:bd,ey:ey,em:em,ed:ed,p:pagenumber,ucn:ucn1,kw:kw,webRoot:webRoot,isAllWebSearch:isAllWebSearch},
// data: "by="+by+"&bm="+bm+"&bd="+bd+"&ey="+ey+"&em="+em+"&ed="+ed+"&p="+pagenumber+"&ucn="+ucn1+"&kw="+kw+"&webRoot="+webRoot+"&isAllWebSearch="+isAllWebSearch,
// contentType: "application/x-www-form-urlencoded; charset=UTF-8",
function(msg){
alert(msg);
$("#datalist").html(msg);
}
);
}所有的代码都在这 已经好了,但是成功之前我也没改任何的代码,好奇怪啊。
对,重点你看一下第一条,有可能是你的JS代码本身的编码格式与你的head中声明的charset不统一造成的。用notepad++等工具查看一编码,如果不是,就转换成统一的编码
这个还是声明一下比较保险
就是用这个编码下就好了,多谢多谢。