Google做xmlhttprequest搜索时的ajax下拉列表没有中文问题,为什么?
看Google的发送和处理:
function ia(){
var a=null;
try{
a=new ActiveXObject("Msxml2.XMLHTTP")}
catch(b){
try{
a=new ActiveXObject("Microsoft.XMLHTTP")}
catch(d){
}
}
return a}
function ha(a){
if(I&&I.readyState!=0&&I.readyState!=4)I.abort();
if(I)I.onreadystatechange=function(){
}
;
I=ia();
if(I){
I.open("GET",y+"&xhr=t&q="+a+"&cp="+F,true);
I.onreadystatechange=
function(){
if(I.readyState==4)switch(I.status){
case 403:J=1000;
break;
case 302:case 500:case 502:case 503:J++;
break;
case 200:fa(eval(I.responseText));
default:J=0}
}
;
I.send(null)}
}
没什么特别的……
注意这行:eval(I.responseText)
跟踪抓了一下,返回的是:
[
"MYMY",
[
[
"mymym",
"217,
000结果",
"1"
],
[
"mymyle",
"110,
000结果",
"2"
],
[
"mymyti",
"899结果",
"3"
],
[
"mymymobilesllc",
"4,
950结果",
"4"
]
]
]
(上面这段美化了一下,呵呵)
结论:没什么特别的,只不过是因为返回的是utf编码。
意外收获:把返回值直接弄进数组里,省资源啊!