1.注意幾個(gè)編碼地方
1.1表單所在的網(wǎng)頁(yè)的:meta
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
1.2XMLHTTPRequest GET的編碼
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
此處設(shè)置不對(duì)!responseText會(huì)返回empty(沒有內(nèi)容),如果您有FireFox并裝有FireBug組件的話,點(diǎn)擊狀態(tài)欄的綠色箭頭打開控件面板(非OS的,FireBug的),選中Console會(huì)看到Response選項(xiàng)是:
Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation ’=
當(dāng)然如果是連接數(shù)據(jù)庫(kù)的話也可能跟下面的(1.4)有關(guān)系.
1.3ajax GET請(qǐng)求的頁(yè)面(.php)header
header("Content-Type:text/html;charset=UTF-8");
1.4數(shù)據(jù)連接的編碼
mysql_query("SET CHARACTER SET UTF8");
如果你的數(shù)據(jù)庫(kù)是GBK的或其它的字符集,為了統(tǒng)一編碼還要與以上三個(gè)統(tǒng)一起來(lái).下面我的示例用的數(shù)據(jù)庫(kù)也是GBK,從昨天開始我一起把它設(shè)成:
mysql_query("SET CHARACTER SET GBK");
可還是有時(shí)發(fā)現(xiàn)會(huì)返回空(empty 我用的是ResponseText),千萬(wàn)不要寫成UTF-8噢,數(shù)據(jù)庫(kù)的字符集是沒有中間的"-"
2.如果還是返回空或無(wú)效的值
例如:
a.html中有表單,a用XMLHTTPRequest和b.php通訊.
首先要保證b.php可以正確運(yùn)行,例b.php?param=value打印出來(lái)的是你期望的值
如果a.html打印b.php返回的結(jié)果(ajax)與上面的(單獨(dú)運(yùn)行b.php)執(zhí)行結(jié)果有出入.可以刪除b.php中的空行試試!我想應(yīng)該不會(huì)出現(xiàn)這種情況,但我有幾次作demo刪除后和刪除前確實(shí)有出入
3.下面是朋友發(fā)給我的一個(gè)示例!我修改完的源碼
表單頁(yè):
新聞熱點(diǎn)
疑難解答
圖片精選