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編碼。
意外收穫:把返回值直接弄進數組裏,省資源啊!