創建xmlhttprequest 對象。
復制代碼 代碼如下:
return window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
復制代碼 代碼如下:
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();
}
// 具體這個函數的參數設置也可以根據自己的習慣來設置
復制代碼 代碼如下:
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'];
}
復制代碼 代碼如下:
<!--<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />-->
<!--// 經過測試 不使用上面的meta 申明charset在IE下會出現亂碼-->
<!--
* header("Content-Type: text/html; charset=gb2312");
被調用的AJAX頁面使用了gb2312的編碼 在chorme下出現了亂碼。
在IE下正常訪問
-->
新聞熱點
疑難解答
圖片精選