亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

ajax以及一些亂碼問題

2024-09-01 08:31:28
字體:
來源:轉載
供稿:網友
很就以前在使用AJAX的時候,那時候還不知道AJAX。于是在任務中被AJAX的亂碼問題搞的頭破血流。

創建xmlhttprequest 對象。

復制代碼 代碼如下:

return window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;


次對象一個 onreadystatechange 事件。有兩個屬性readyState,status。簡單的AJAX我們將使用到這幾個東西。
以下使用到的createXMLHttp()方法就是上面這段代碼!
1:以GET方式發出一個請求的實現;

復制代碼 代碼如下:


var get = function(url, b, callback){
var xmlhttp = createXMLHttp();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
callback(xmlhttp.responseText);
}
}
if(b != undefined){
var arr=[],e;
for( e in b ){
arr.push(e + '=' + encodeURIComponent(b[e]));
//arr.push(e + '=' + b[e]);
// 經過測試如果不使用 encodeURIComponent 編碼在IE8下無法正確傳遞中文
}
url += '?' + arr.join('&');
}
xmlhttp.open('GET', url, true);
xmlhttp.send();
}

// 具體這個函數的參數設置也可以根據自己的習慣來設置


使用GET方式去發送一個請求,我們是把要傳遞的參數格式化(a=1,b=2) 以后附加到URL的后面。
服務器頁面使用獲取URL參數的方式即可獲得。(比如Php: $_GET["a"]);
值得注意的是我們在格式化參數的時候 使用到一個 encodeURIComponent()方法進行了編碼是為了不出現亂碼;
其實有3個方法可以完成這個工作。escape,encodeURI,encodeURIComponent,大家可以查下資料。前兩個方法對于一些特殊字符還是沒有進行編碼。
所以使用第3個是比較好的選擇了。
如果你不使用編碼直接發送數據,各個瀏覽器的表現可能不一樣。比如IE你在發送中文數據的時候就會出現亂碼(當然出現亂碼的情況還很多,請接著看..)。

2:以POST方法發送一個請求的實現

復制代碼 代碼如下:


var ajax = function(a){
var xmlhttp = createXMLHttp();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200 ){
a.success(xmlhttp.responseText);
} else return xmlhttp;
}
xmlhttp.open('POST', a.url, true);
// 請求為post的時候 必須設置頭信息
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// 序列化要發送的數據
var c = [];
for(var e in a.data){
c.push(e + '=' + encodeURIComponent(a.data[e]));
// 經過測試 經過URL編碼以后更能夠保證發送數據的正確性。
      //不編碼可能造成部分特殊字符不能正確發送
}
a.data = c.join('&');
xmlhttp.setRequestHeader("Content-length", c.length); // 好像是可選
xmlhttp.setRequestHeader("Connection", "close"); // 好像是可選
xmlhttp.send(a.data);
// 次數據發送以后服務端 使用 post 獲取數據 比如php $_POST['a'];
}


參數a是一個對象 他包含 {url:"http:...",data:{a:1,b2},success:function(){}}
             地址 數據 成功回調函數  
使用POST方法發出請求。數據也必須格式化(a=1,b=2) ;不過跟GET方法不一樣的地方是 我們是把數據寫在了send()方法里(xmlhttp.send(a.data);)。
服務器頁面使用獲取表單數據的方式即可獲得。(比如Php: $_POST["a"]);
值得注意的是在使用post發送請求的時候 我們必須設置請求的頭信息。
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
經過測試如果不設置Content-type為application/x-www-form-urlencoded;服務器頁面是無法獲取到通過send()方法發送的數據。

最后 關于亂碼的問題。上面已經有兩個地方會出現錯誤了。
1:比如參數沒有進行編碼直接傳遞,會出現傳遞不成功的問題。
2:在使用POST方法的時候沒有設置Content-type,服務器頁面無法獲取發送過來的參數;
3:發送請求頁面與請求頁面的編碼問題。在標準瀏覽器下請一定保持請求頁面和被請求頁面的編碼方式是utf-8,不然中文會很悲劇。

復制代碼 代碼如下:


<!--<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />-->
<!--// 經過測試 不使用上面的meta 申明charset在IE下會出現亂碼-->
<!--
* header("Content-Type: text/html; charset=gb2312");
被調用的AJAX頁面使用了gb2312的編碼 在chorme下出現了亂碼。
在IE下正常訪問
-->


上面這里出現亂碼的情況非常亂,不好排除。所以保持兩個頁面編碼為UTF-8 參數編碼后在傳遞??梢杂行Х乐箒y碼
我測試的幾個文件打包
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩免费视频| 亚洲精品国产精品久久清纯直播| 欧美在线观看网址综合| 久久精品中文字幕| 亚洲成年人在线播放| 欧美成人精品影院| 久久青草精品视频免费观看| 91久久精品国产| 久久久久久中文字幕| 国产丝袜一区二区| 亚洲第一男人天堂| 美日韩精品视频免费看| 亚洲第一综合天堂另类专| 亚洲第一网站免费视频| 国产精品久久久久久久久免费| 亚洲欧洲在线视频| 91精品啪aⅴ在线观看国产| 国产精品久久久久av免费| 久久国内精品一国内精品| 欧美午夜片欧美片在线观看| 欧美午夜片欧美片在线观看| 777国产偷窥盗摄精品视频| 亚洲女人被黑人巨大进入al| 欧美成人免费全部观看天天性色| 国产精品久久久久久婷婷天堂| 伊人久久久久久久久久久| 国产mv免费观看入口亚洲| 日韩在线欧美在线| 亚洲电影免费观看高清完整版在线观看| 亚洲综合色激情五月| 国产视频久久久| 68精品久久久久久欧美| 亚洲码在线观看| 亚洲第一男人av| 久久国产加勒比精品无码| 日韩精品亚洲视频| 日韩有码在线电影| 91欧美精品午夜性色福利在线| 精品国产鲁一鲁一区二区张丽| 狠狠综合久久av一区二区小说| 2019最新中文字幕| 国产噜噜噜噜噜久久久久久久久| 久久久精品一区二区| 欧美成人午夜激情| 欧美激情视频一区二区| 国内外成人免费激情在线视频| 色小说视频一区| 日韩精品中文字幕在线播放| 国产日本欧美在线观看| 亚洲国产欧美一区| 最近2019中文字幕一页二页| 国产精品激情av在线播放| 亚洲精品成人av| 国产一区二区三区四区福利| 黑人巨大精品欧美一区免费视频| 欧美精品在线免费| 亚洲a中文字幕| 国产精品国产自产拍高清av水多| 欧美日韩国产一区在线| 国产亚洲精品美女久久久久| 国产欧美精品xxxx另类| 国产精品专区h在线观看| 久久久久久伊人| 久久综合电影一区| 欧美日韩国产一区中文午夜| 一本大道久久加勒比香蕉| 久久综合网hezyo| 亚洲国产精品久久久久| 亚洲天堂开心观看| 欧美最猛性xxxxx免费| 欧美成人在线免费| 成人欧美一区二区三区在线湿哒哒| 日韩欧美一区二区三区| 91chinesevideo永久地址| 日韩中文字幕av| 国语对白做受69| 日本免费久久高清视频| 清纯唯美日韩制服另类| 欧美日韩高清在线观看| 日韩风俗一区 二区| 欧美理论电影在线播放| 国产91精品在线播放| 欧美中文字幕视频| 午夜精品一区二区三区在线| 国产视频综合在线| 国产精品欧美日韩久久| 欧美性猛交xxxx富婆弯腰| 久久深夜福利免费观看| 中日韩美女免费视频网站在线观看| 亚洲福利在线播放| 色噜噜狠狠狠综合曰曰曰| 日本国产欧美一区二区三区| 日本精品视频在线| 国产精品日韩在线| 亚洲va欧美va国产综合剧情| 国产情人节一区| 成人国内精品久久久久一区| 欧美xxxx做受欧美| 久久福利网址导航| 青草青草久热精品视频在线观看| 日韩美女激情视频| 国产亚洲欧洲高清一区| 日韩成人网免费视频| 国产精品伦子伦免费视频| 久久男人资源视频| 国产精品久久久久久久久久久新郎| 亚洲国产精品国自产拍av秋霞| 亚洲国产精品99| 狠狠爱在线视频一区| 亚洲男人第一网站| 国产精品国语对白| 亚洲欧美一区二区三区四区| www.欧美视频| 久热精品视频在线免费观看| 日本高清视频精品| 国产精品青青在线观看爽香蕉| 国产精品亚洲美女av网站| 国产视频999| 亚洲片国产一区一级在线观看| 中文字幕一区日韩电影| 国产一区二区三区在线看| 成人春色激情网| 欧美日韩国产综合新一区| 福利一区视频在线观看| 久久国内精品一国内精品| 亚洲国产精品久久久久| 日产日韩在线亚洲欧美| 在线日韩av观看| 欧美最猛性xxxxx(亚洲精品)| 97国产精品久久| 亚洲最新av在线网站| 国语自产精品视频在线看抢先版图片| 日韩精品免费观看| 91久久国产综合久久91精品网站| 亚洲午夜未满十八勿入免费观看全集| 亚洲欧美日韩中文在线| 欧美性猛交xxxx乱大交极品| 欧美日本国产在线| 国产99视频精品免视看7| 欧美在线精品免播放器视频| 日韩视频免费在线| 亚洲一区二区福利| 久久久噜久噜久久综合| 国语自产精品视频在线看一大j8| 国产精品久久婷婷六月丁香| 亚洲欧美成人在线| 欧美性videos高清精品| 亚洲欧美日韩天堂一区二区| 亚洲欧美日韩天堂一区二区| 国产精品视频中文字幕91| 日韩中文字在线| 久久九九有精品国产23| 亚洲视频日韩精品| 日韩av电影在线免费播放| 国产精品99免视看9| 国产精品视频色| 26uuu亚洲国产精品| 欧美一区二区.| 一区三区二区视频| 高跟丝袜欧美一区| 都市激情亚洲色图| 欧美一级大片在线观看| 欧美性猛交xxxxx水多| 欧美精品一二区|