ajax是什么?
AJAX 是與服務器交換數據并更新部分網頁的藝術,在不重新加載整個頁面的情況下。
AJAX 指異步 JavaScript 及 XML(Asynchronous JavaScript And XML)。
AJAX 是一種在 2005 年由 Google 推廣開來的編程模式。
AJAX 不是一種新的編程語言,而是一種使用現有標準的新方法。
通過 AJAX,你可以創建更好、更快以及更友好的 WEB 應用程序。
AJAX 基于 JavaScript 和 HTTP 請求(HTTP requests)。
通過 HTTP 請求加載遠程數據
jQuery 底層對 AJAX 實現進行了封裝.使得我們在進行ajax操作時,不必像原生js中那么復雜
$.get, $.post, $.ajax() 返回其創建的 XMLHttpRequest 對象。多數情況下我們不需要去操作返回的對象
如何使用ajax技術?
首先你得有web服務器,能夠通過瀏覽器去執行你的html和你的python
注意一點:我們平常寫的html,直接在瀏覽器打開時 使用的是file協議 而ajax是基于HTTP請求的,所以要求你的html能夠使用http的協議打開 如果你能做到用http協議去打開你的html并且能夠正常顯示的話,就代表你的web服務器搭建成功
$.get() 方法:
//發送ajax請求 1.url 2.可選 發送get請求時攜帶的參數 ,3,可選 回調函數,請求完之后做什么事 4,可選,返回的數據類型 json
KaTeX parse error: Expected '}', got '&' at position 11: .get(url,{&?#x8BF7;求….post()
$.post(url,{請求的參數},function(data){},'json')
$.ajax()
$.ajax({url:'/cgi-bin/5.py',//當前請求的url地址type:'get',//當前請求的方式 get postdata:{id:100,username:'zhangsan'},//請求時發送的參數dataType:'json',//返回的數據類型success:function(data){//ajax請求成功后執行的代碼console.log(data);},error:function(){//ajax執行失敗后執行的代碼alert('ajax執行錯誤');},timeout:2000,//設置當前請求的超時時間 毫秒,必須時異步請求才會生效async:true// 是否異步 true為異步 false 同步
})
ajax異步 同步
//設置ajax的全局配置 async:false 設置當前請求為同步
$.ajaxSetup({async:false
})關于ajax中 異步 和 同步 ajax默認就是異步請求,async (默認: true) 默認設置下,所有請求均為異步請求。
如果需要發送同步請求,請將此選項設置為 false。同步請求,就發ajax請求發出去后必須等待ajax的結果返回后才能繼續往下執行一般情況下都使用異步操作就可以,除非有特殊情況,必須等ajax的結果回來后才能做處理的,就用同步
注意
1.ajax是無刷新請求服務器,所以我們在瀏覽器中是感覺不到,也看不到ajax的具體請求和執行情況的.,因此我們需要借助瀏覽器的調試工具 (F12打開) 進行查看2.ajax的請求是基礎HTTP協議的,就要求你當前打開這個帶有ajax的html時必須使用http協議3.ajax要求同源策略http://127.0.0.1:8000/cgi-bin/1.py即: 協議(http https) 域名或IP 以及端口(80 443 8000 8080 ...)都必須一致4.關于返回的數據類型 在get() post() ajax() 都可以設置返回的數據類型 'json'如果要求返回json格式數據,那么就必須返回json,如果不正確,在get和post方法將拿不到data中返回的數據,在ajax方法中則會進去error方法5.在python中返回json格式數據,引入 json模塊json.dumps(數據) 使用json_dumps方法進行json格式的編碼轉換6.在使用ajax方法時.會創建一個對象 XMLHttpRequest那么在ajax的方法中使用的 $(this) 就代表 ajax的對象$(this) 永遠代表一個對象,沒有指明對象時 代表的時window對象,在它有對象時 代表的就是當前的這個對象
了解json格式數據
json是 JavaScript Object Notation 的首字母縮寫,單詞的意思是javascript對象表示法,這里說的json指的是類似于javascript對象的一種數據格式,目前這種數據格式比較流行,逐漸替換掉了傳統的xml數據格式。
javascript對象字面量:
var tom = {name:'tom',age:18
}
json格式的數據:
{"name":'tom',"age":18
}
與json對象不同的是,json數據格式的屬性名稱需要用雙引號引起來,用單引號或者不用引號會導致讀取數據錯誤。
json的另外一個數據格式是數組,和javascript中的數組字面量相同。
['tom',18,'programmer']