一、jQuery中的ajax
1. 封裝第一層 - 類似于原生ajax的用法
$ajax
2. 封裝第二層 - 基于第一層再次封裝
$().load();
$.post();
$.get();
3. 封裝的第三層 - 特殊用法
$.getScript(); - 動態(tài)讀取腳本(js代碼)
$.getJson(); - 接收json格式數(shù)據(jù)
二、load(url,data,callback)方法
1. 最簡單、局限性最大
url - 設置ajax的請求地址
data - 設置ajax的請求數(shù)據(jù)
要求為key:value格式,其實就是js的對象格式
callback: ajax請求成功后的回調函數(shù)
回調函數(shù)的參數(shù)就是服務器返回的數(shù)據(jù)
2. 服務器響應的數(shù)據(jù)自動寫入調用load方法的屬性中
3. load()方法的請求類型
1)沒有請求數(shù)據(jù)時,請求類型是GET
2) 發(fā)送請求數(shù)據(jù)時,請求類型是POST
4. load()方法接受服務器端的響應數(shù)據(jù)
是以字符串類型(HTML格式)來接受
三、get/post()方法
1. get(url,data,callback,type)
1. 參數(shù)
url - 設置ajax的請求地址
data - 設置ajax的請求數(shù)據(jù)
要求為key:value格式,其實就是js的對象格式
callback: ajax請求成功后的回調函數(shù)
回調函數(shù)的參數(shù)就是服務器返回的數(shù)據(jù)
type:設置服務器端響應的數(shù)據(jù)格式
默認值為HTML,還可以為xml/json
2. 無論是否發(fā)送請求數(shù)據(jù),請求類型都是GET
3. $.get()方法可以接受HTML/XML/JSON格式
2. post(url,data,callback,type)
使用方式跟get一模一樣
四、$.ajax(options)方法
1. options的格式是{key:value}
2. url:請求地址
3. type:請求類型,默認為get
4. async:是否異步,默認為true
5. contentType POST方式發(fā)送數(shù)據(jù)的前提
默認值為application/x-www-form-urlencoded
6. data:請求數(shù)據(jù),格式必須為key=value
7. success:請求成功后的回調函數(shù)
function(data,textStatus)
data - 服務器響應的內容
textStatus - 表示ajax請求的狀態(tài),此時的值為success
8. error:請求失敗后的回調函數(shù)
function(XMLHttpRequest,textStatus,errorThrown)
XMLHttpRequest - ajax的核心對象
errorThrown - 錯誤異常信息
textStatus - 表示ajax請求的狀態(tài)
error/timeout/notmodified
9. dataType:數(shù)據(jù)響應格式
HTML/XML/JSON
五、使用$.getScript(url,calback)動態(tài)讀取腳本
1. 若JS代碼過多時,會影響HTML頁面加載的速度,如果已被加載的JS代碼并不是立即執(zhí)行,只加載馬上執(zhí)行的js代碼,會提交效率
2. 參數(shù)
url - 讀取腳本的地址(本地或服務器)
calback - 回調函數(shù)
六、表單的Ajax異步提交 -
1. 表單的序列化
1)serialize() 返回的是json字符串
使用表單元素的name屬性值
{key:value}
2)serializeArray() 返回的是json對象
json對象由一個對象數(shù)組組成
[obj1,obj2,obj3,...]
注意:
表單必須要有name屬性
2. jQuery.form插件
1)實現(xiàn)表單的異步提交,底層機制,還是使用正常的表單提交機制
2)兩個核心方法 - 參數(shù)既是一個option參數(shù)
ajaxForm(options)方法
ajaxForm()不能提交表單。在document的ready函數(shù)中,使用ajaxForm來為AJAX提交表單進行準備。提交動作必須由submit開始
ajaxSubmit(option)方法
ajaxSubmit()馬上由AJAX來提交表單。你可以在任何情況下進行該項提交。
3) 參數(shù)
target 服務器返回內容所存放的元素ID
beforeSubmit 提交前回調函數(shù),如果返回false,則不提交
success 提交后的回調函數(shù),一般有兩個參數(shù)responseText,statusText
url 默認是form的action,如果聲明,則覆蓋
type 默認是form的method,如果聲明,則覆蓋
dataType html(默認),xml,script,json….接受服務端返回的類型
clearForm 布爾值,成功提交后,是否清除所有表單元素值
resetForm 布爾值,成功提交后,是否重置所有表單元素值
timeout 限制請求時間,大于該時間后則跳出請求
3. 表單異步提交的方式
1)不使用submit按鈕,而是使用button按鈕,通過綁定click事件,實現(xiàn)提交
表單的序列化
表單的異步提交
2) (常用)依舊使用submit事件,在form元素中綁定onsubmit事件,在onsubmit事件的處理函數(shù)中要做如下事情
表單的序列化
表單的異步提交
組織表單的默認行為
七、getJson()方法 - 可以實現(xiàn)跨域提交
1. 什么叫做跨域
跨域:
完全跨域 - IP不同
跨子域 - IP相同,但端口號不同
域名:
頂級域名 - http://www.baidu.com
二級域名 - http://www.baidu.com/kongjian
萬維網(wǎng)協(xié)議:
默認是不允許跨域請求的
服務器那邊返回的是一個函數(shù)字符串
$.getJson("url?callback=?",function(data){
})
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。