AJAX(Asynchronous Javascript And XML)翻譯成中文就是“異步Javascript和XML”。即使用Javascript語言與服務(wù)器進(jìn)行異步交互,傳輸?shù)臄?shù)據(jù)為XML(當(dāng)然,傳輸?shù)臄?shù)據(jù)不只是XML)。
成都創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為余慶企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計,余慶網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
AJAX除了異步的特點外,還有一個就是:瀏覽器頁面局部刷新;(這一特點給用戶的感受是在不知不覺中完成請求和響應(yīng)過程)
序號 | 類型 | 請求方式 |
---|---|---|
1 | 瀏覽器地址欄直接輸入url | get請求 |
2 | a標(biāo)簽的href屬性 | get請求 |
3 | form表單action屬性 | get請求和post請求 |
4 | ajax | get請求和post請求 |
ps:作為后端人員,前期只需要學(xué)習(xí)jquery封裝之后的版本就行(不需要學(xué)習(xí)原生的ajax,原生的復(fù)雜且項目中一般不用),所以在前端
頁面使用ajax的時候需要先導(dǎo)入jquery!
jquery調(diào)用ajax的方法:
格式:$.ajax({});
參數(shù):
type:請求的方式get、post(小寫)
url:"" 請求的地址,不寫默認(rèn)為當(dāng)前地址
async:是否異步,默認(rèn)為true表示異步
data:發(fā)送到服務(wù)器的數(shù)據(jù)
dataType:'json'預(yù)期服務(wù)器返回的數(shù)據(jù)類型為json格式
contentType:設(shè)置請求頭
success:function(date){}; data是形參名,請求成功時調(diào)用此函數(shù)
error:請求失敗時調(diào)用此函數(shù)
小案例:
需求:頁面上有三個input框,在前兩個框中輸入數(shù)字 點擊按鈕 朝后端發(fā)送ajax請求,后端計算出結(jié)果 再返回給前端動態(tài)展示的到第三個input框中(整個過程頁面不準(zhǔn)有刷新,也不能在前端計算)
html部分
+
=
后端部分
def index(request):
if request.method =='POST':
u1 = request.POST.get('u1') #接收前端傳來的數(shù)據(jù)
u2 = request.POST.get('u2')
u3 = int(u1)+int(u2) # 將數(shù)據(jù)進(jìn)行相加
return HttpResponse(u3) # 把結(jié)果返回給前面,注意這個用HttpResponse返回,如果是字典,則需要進(jìn)行序列化
# return JsonResponse(dict) # 直接把字典序列化,前端也無需在反序列化了!
return render(request,'index.html') # 最后還需要返回原先的頁面
詳見:django中前后端傳輸數(shù)據(jù)的編碼格式(contentType)