第一種:
創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元莊浪做網(wǎng)站,已為上家服務(wù),為莊浪各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
$.ajax({
type:?"POST",?//提交方式?post?和?get
url:?"連接地址",//連接地址
data:?'{"'?+?+?'"}',//數(shù)據(jù)類型
contentType:?"application/json;charset=utf-8",//編碼形式
dataType:?"json",?//提交數(shù)據(jù)類型
success:?function?(data)?{
var?it?=?eval(data.d);
var?Html?=?"";
for?(var?i?in?it)?{}
},?async:?false
});
第二種:
$(document).ready(function(){
$("#a").click(function(){
htmlobj=$.ajax({url:"/test.txt",async:false});
$("#b").html(htmlobj.responseText);
});
});
第三種:
$.ajax({?url:?"abc.html",?context:?document.body,?success:?function(){
$(this).addClass("Dmoe");
}});
//參考文獻(xiàn):鋒利的Jquery??如有疏漏或者錯(cuò)誤?還望大家指出
1、使用ajax發(fā)送數(shù)據(jù)的步驟
第一步:創(chuàng)建異步對(duì)象
var xhr = new XMLHttpRequest();
第二步:設(shè)置 請(qǐng)求行 open(請(qǐng)求方式,請(qǐng)求url):
// get請(qǐng)求如果有參數(shù)就需要在url后面拼接參數(shù),
// post如果有參數(shù),就在請(qǐng)求體中傳遞 xhr.open("get","validate.php?username="+name)
xhr.open("post","validate.php");
第三步:設(shè)置請(qǐng)求(GET方式忽略此步驟)頭:setRequestHeader()
// 1.get不需要設(shè)置
// 2.post需要設(shè)置請(qǐng)求頭:Content-Type:application/x-www-form-urlencoded
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
第四步:設(shè)置請(qǐng)求體 send()
// 1.get的參數(shù)在url拼接了,所以不需要在這個(gè)函數(shù)中設(shè)置
// 2.post的參數(shù)在這個(gè)函數(shù)中設(shè)置(如果有參數(shù))
xhr.send(null) xhr.send("username="+name);
第五步:讓異步對(duì)象接收服務(wù)器的響應(yīng)數(shù)據(jù)
一個(gè)成功的響應(yīng)有兩個(gè)條件:
xhr.onreadystatechange = function(){ ?
if(xhr.status == 200 xhr.readyState == 4){?
console.log(xhr.responseText);?
}
ajax-get方式請(qǐng)求案例:
var xhr = new XMLHttpRequest();?
xhr.open("get","validate.php?username="+name);?
xhr.send(null);?
xhr.onreadystatechange = function(){?
if(xhr.status == 200 xhr.readyState == 4){
console.log(xhr.responseText);
document.querySelector(".showmsg").innerHTML = xhr.responseText;;
}
}
ajax-post方式請(qǐng)求案例:
var xhr = new XMLHttpRequest();
xhr.open("post","validate.php");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("username="+name);
xhr.onreadystatechange = function(){
// 判斷服務(wù)器是否響應(yīng),判斷異步對(duì)象的響應(yīng)狀態(tài)
if(xhr.status == 200 xhr.readyState == 4){
document.querySelector(".showmsg").innerHTML = xhr.responseText;
}
}
二、Jquery中的Ajax
$.ajax({
type: "get",// get或者post
url: "abc.php",// 請(qǐng)求的url地址
data: {},//請(qǐng)求的參數(shù)
dataType: "json",//json寫(xiě)了jq會(huì)幫我們轉(zhuǎn)換成數(shù)組或者對(duì)象 他已經(jīng)用JSON.parse弄好了
timeout: 3000,//3秒后提示錯(cuò)誤
beforeSend: function () {
// 發(fā)送之前就會(huì)進(jìn)入這個(gè)函數(shù)
// return false 這個(gè)ajax就停止了不會(huì)發(fā) 如果沒(méi)有return false 就會(huì)繼續(xù)
},
success: function (data) { // 成功拿到結(jié)果放到這個(gè)函數(shù) data就是拿到的結(jié)果
},
error: function () {//失敗的函數(shù)
},
complete: function () {//不管成功還是失敗 都會(huì)進(jìn)這個(gè)函數(shù)
}
})
// 常用
$.ajax({
type: "get",
url: "",
data: {},
dataType: "json",
success: function (data) {
}
})
$.ajax() 都可以發(fā)
$.post(url,data,success,datatype):本質(zhì)上只能發(fā)送post請(qǐng)求
$.get(url,data,success,datatype):本質(zhì)上只能發(fā)送get請(qǐng)求
$.ajax({
//訪問(wèn)地址
url:?'/path/to/file',
//訪問(wèn)方式,一般有GET或POST兩種
type:?'default?GET?(Other?values:?POST)',
//返回的數(shù)據(jù)格式,這個(gè)是可選參數(shù),jquery回默認(rèn)判斷返回參數(shù)的類型
dataType:?'default:?Intelligent?Guess?(Other?values:?xml,?json,?script,?or?html)',
//發(fā)送的數(shù)據(jù)
data:?{
param1:?'value1',
param2:?'value2'
},
})
//成功后的處理函數(shù),res為服務(wù)器返回的數(shù)據(jù)
.done(function(res)?{
console.log("success");
})
//失敗后的處理函數(shù)
.fail(function()?{
console.log("error");
})
//結(jié)束后的處理函數(shù),不管成功失敗都執(zhí)行
.always(function(res)?{
console.log("complete");
});
jQuery中ajax的4種常用請(qǐng)求方式:
1.$.ajax()返回其創(chuàng)建的 XMLHttpRequest 對(duì)象。
$.ajax() 只有一個(gè)參數(shù):參數(shù) key/value 對(duì)象,包含各配置及回調(diào)函數(shù)信息。詳細(xì)參數(shù)選項(xiàng)見(jiàn)下。
如果你指定了 dataType 選項(xiàng),請(qǐng)確保服務(wù)器返回正確的 MIME 信息,(如 xml 返回 "text/xml")。
實(shí)例:
保存數(shù)據(jù)到服務(wù)器,成功時(shí)顯示信息。
$.ajax({
type: "post",
dataType: "html",
url: '/Resources/GetList.ashx',
data: dataurl,
success: function (data) {
if (data != "") {
$("#pager").pager({ pagenumber: pagenumber, pagecount: data.split("$$")[1], buttonClickCallback: PageClick });
$("#anhtml").html(data.split("$$")[0]);
}
}
});
2.通過(guò)遠(yuǎn)程 HTTP GET 請(qǐng)求載入信息。
這是一個(gè)簡(jiǎn)單的 GET 請(qǐng)求功能以取代復(fù)雜 $.ajax 。請(qǐng)求成功時(shí)可調(diào)用回調(diào)函數(shù)。如果需要在出錯(cuò)時(shí)執(zhí)行函數(shù),請(qǐng)使用 $.ajax。
實(shí)例:
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
3. 通過(guò)遠(yuǎn)程 HTTP POST 請(qǐng)求載入信息。
這是一個(gè)簡(jiǎn)單的 POST 請(qǐng)求功能以取代復(fù)雜 $.ajax 。請(qǐng)求成功時(shí)可調(diào)用回調(diào)函數(shù)。如果需要在出錯(cuò)時(shí)執(zhí)行函數(shù),請(qǐng)使用 $.ajax。
實(shí)例:
$.post("/Resources/addfriend.ashx", { "fid": fids, "fname": fnames, "tuid": tuids, "tuname": tunames }, function (data) {
if (data == "ok") {
alert("添加成功!");
}
})
4.通過(guò) HTTP GET 請(qǐng)求載入 JSON 數(shù)據(jù)。
實(shí)例:
$.getJSON(";tagmode=anyformat=jsonjsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("img/").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});