ajax的各類用法,包括原生和Jquery

form數據的序列化:php

複製代碼
$('#submit').click(function(){
    $('#form').serialize();        //會根據input裏面的name,把數據序列化成字符串;eg:name=yang
    $('#form').serializeArray();    //會根據input裏面的name,把數據序列化成數組;eg:[object]
  //注意:沒有name會獲取不到值
//下面兩種不是jQuery的方法 JSON.parse() //json字符串轉化爲json對象 JSON.stringify() //json對象轉化爲json字符串 });
複製代碼

jQuery的ajax方法:html

複製代碼
$.ajax({
    url:'/comm/test1.php',
    type:'POST', //GET
    async:true,    //或false,是否異步
    data:{
        name:'yang',age:25
    },
    timeout:5000,    //超時時間
    dataType:'json',    //返回的數據格式:json/xml/html/script/jsonp/text
    beforeSend:function(xhr){
        console.log(xhr)
        console.log('發送前')
    },
    success:function(data,textStatus,jqXHR){
        console.log(data)
        console.log(textStatus)
        console.log(jqXHR)
    },
    error:function(xhr,textStatus){
        console.log('錯誤')
        console.log(xhr)
        console.log(textStatus)
    },
    complete:function(){
        console.log('結束')
    }
})
複製代碼

原生的ajax方法:ajax

複製代碼
$('#send').click(function(){
    //請求的5個階段,對應readyState的值
        //0: 未初始化,send方法未調用;
        //1: 正在發送請求,send方法已調用;
        //2: 請求發送完畢,send方法執行完畢;
        //3: 正在解析響應內容;
        //4: 響應內容解析完畢;

    var data = 'name=yang';
    var xhr = new XMLHttpRequest();        //建立一個ajax對象
    xhr.onreadystatechange = function(event){    //對ajax對象進行監聽
        if(xhr.readyState == 4){    //4表示解析完畢
            if(xhr.status == 200){    //200爲正常返回
                console.log(xhr)
            }
        }
    };
    xhr.open('POST','url',true);    //創建鏈接,參數一:發送方式,二:請求地址,三:是否異步,true爲異步
    xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');    //無關緊要
    xhr.send(data);        //發送
});
相關文章
相關標籤/搜索