Ajax在前端的应用极其普遍,所以,咱们有必要对其进行总结,以方便后期的使用。php
AJAX优势:html
能够异步请求服务器的数据,实现页面数据的实时动态加载, 在不从新加载整个页面的状况下,能够与服务器交换数据并更新部分网页内容。前端
jquery在全局对象jquery(也就是$)绑定了ajax()函数,能够处理Ajax请求,ajax经常使用的配置选项有:jquery
语法一:$.ajax({name:value, name:value, ...})ajax
1 # 登陆js代码 2 $(".form-login").submit(function (e) { 3 e.preventDefault(); 4 mobile = $("#mobile").val(); 5 pwd = $("#password").val(); 6 var data = { 7 mobile: mobile, 8 pwd: pwd 9 }; 10 $.ajax({ 11 url: "/api/***", 12 type: "POST", 13 data: JSON.stringify(data), 14 contentType: "application/json", 15 dataType: "json", 16 headers: {"X-CSRFToken": getCookie('csrf_token')}, 17 success: function (resp) { 18 if (resp.error == 0){ 19 // resp 是后端经过json.dumps()返回的json格式数据:res={"error":0, "errmsg":"登陆失败"} 20 // resp = json.dumps(res) 21 // 请求成功,跳转页面 22 location.href = '/' 23 } 24 else { 25 alert(resp.errmsg) 26 } 27 } 28 }) 29 })
语法二:$.get(URL, params, function(resp, status_code){}) json
URL必需参数;后端
params可选参数,params={key:value...}, 会以?key=value&key=value...的方式自动添加到URL后面 api
function(resp, status_code) 可选参数,是请求成功后所执行的函数,resp是后台返回的数据; states_code是自动生成的响应状态码,可缺省数组
1 # 更新首页房源展现信息 2 var params = { 3 aid: 0, 4 sd: "2018-2-20", 5 ed: "2019-2-29", 6 page: 1 7 }; 8 $.get("/api/v1_0/houses", params, function(resp){ 9 if (resp.error == 0){ 10 $(".house-list").html(template("house-list-tmpl", {houses:resp.data.houses})); 11 } 12 else { 13 $(".house-list").append(template("house-list-tmpl", {houses: resp.data.houses})); 14 } 15 })
语法三:$.post(URL, data, function(resp, states_code){})缓存
URL必选参数;
data 可选参数 连同请求发送的数据;
function(resp, status_code) 可选参数,是请求成功后所执行的函数,resp是后台返回的数据; states_code是自动生成的响应状态码,可缺省
1 $("button").click(function(){ 2 $.post("/try/ajax/demo_test_post.php", 3 { 4 name:"mjy", 5 url:"https://cnblogs.com/We612/" 6 }, 7 function(data,status){ 8 alert("数据: \n" + data + "\n状态: " + status); 9 }); 10 });
说明:
$.GET 基本上用于从服务器得到(取回)数据。注释:GET 方法可能返回缓存数据。
$.POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,而且经常使用于连同请求一块儿发送数据。
实际应用中多用到语法一 语法二, 语法三较少