ajax的全稱:
asynchronous javascript and xml
(非同步javascript和xml)
ajax不是某種程式設計語言
是一種在無需重新載入整個頁面的情況下能夠更新部分網頁的技術。
一個完整的http請求過程,有7個步驟:
1.建立TCP串連。
2.Web瀏覽器向Web伺服器發送請求命令。
3.Web瀏覽器發送要求標頭資訊。
4.Web伺服器應答。
5.Web伺服器發送應答頭資訊。
6.Web伺服器向瀏覽器發送資料。
7.Web伺服器關閉TCP串連
一個http請求一般由四部分組成:
1.http請求的方法或動作,比如是GET還是POST請求。
2.正在請求的URL。
3.要求標頭,包含一些用戶端環境資訊,身分識別驗證資訊等。
4.請求體,也就是請求本文,請求本文中可以包含客戶的提交的查詢字串資訊,表單資訊等等。
GET:(等冪:就是一個GET請求執行一次和執行一萬次的效果是一樣的)
1.一般用於資訊擷取(查詢),
2.使用URL傳遞參數,
3.對發送的資訊的數量有限制,一般在2000個字元。
4.好處就是可以添加到書籤中收藏頁面。
POST:
1.一般用於修改伺服器上的資源,
2.對所發送的資訊的數量無限制,
3.被嵌入到http的請求體中。
一個http響應一般麼由三部分組成:
1.一個數字和文字組成的狀態代碼,用來顯示請求是成功還是失敗,
2.回應標頭,回應標頭也和要求標頭一樣包含許多有用的資訊,例如服務類型,日期時間,內容類型和長度等,
3.響應體:也就是響應本文
http狀態代碼由32位元字構成,其中首位元字定義了狀態代碼的類型:
1XX:資訊類,表示收到Web瀏覽器請求,正在進一步處理中,
2XX:成功,表示使用者請求被正確接受,理解和處理,例如:200 OK
3XX:重新導向,表示請求沒有成功,客戶必須採取進一步的動作,
4XX:用戶端錯誤,表示用戶端提交請求有錯誤,例如:404 NOT Found,意味著請求中所引用的文檔不存在,
5XX:伺服器錯誤,表示伺服器不能完成對請求的處理,例如:500
JSON的基本概念
1.json:javasscript對象標記法,(javascript Object Notation)
2.json是儲存和交換文本資訊的文法,類似XML。它採用索引值對的方式來組織,易於人們閱讀,同時也易於機器解析和產生。
3.json是獨立於語言的,也就是不管什麼語言,都可以解析json,只需要按照json的規則來就行。
json和xml比較
1.json的長度和xml格式比起來很短小。
2.json讀寫的速度更快
3.json可以使用javascript內建德方法直接進行解析,轉換成javascript對象,非常方便。
json可以是下面類型:
1.數字(整數或浮點數),比如123,1.23.
2.字串(在雙引號中)
3.邏輯值(true或false)
4.數組(在方括弧中)
5.對象(在花括弧中)
6.null
解析json的方法:
1.var jsondata = {“staff”:[{“name”:”紅旗”,”age”:”23”},{“name”:”小紅”,”age”:”13”}]};
var jsonbj = JSON.parse(jsondata);
alert(jsonbj.staff[0].name)
使用jquery實現ajax
1.jQuery.ajax([settings])
2.type:類型,”POST”或”GET”,預設為”GET”。
3.url:發送請求的地址。
4.dataType:預期伺服器返回的資料類型,如果不指定,jquery將自動根據http包MIME資訊來智能判斷,一般我們採用json格式,可以設定為”json”。
5.success:是一個方法,請求成功後的回呼函數,傳入返回後的資料,以及包含嗎成功碼的字串。
6.error:是一個方法,請求失敗 時回調用此函數。傳入XMLHttpRequest對象。
跨域
1.一個網域名稱的地址組成:
協議,子網域名稱,主網域名稱,連接埠號碼中任意一個不相同時,都算作不同域,
2.不同域之間相互請求資源,就算作”跨域”,
3.比如http://www.abc.com/index.html 請求 http://www.egf.com/service.php
4.jsvsscript出於安全方面的考慮,不允許跨域調用其他頁面的對象,什麼是跨域呢,簡單的理解就是因為javascript同源策略的限制,a.com網域名稱下的js無法操作b.com或是c.a.com網域名稱下的對象。
5.例如www.abc.com/index.html調用https://www.abc.com/servic.php(跨域)
處理跨域的方法–代理
1.通過在同網域名稱的web伺服器端建立一個代理
2.北京伺服器(網域名稱:www.beijing.com)
3.上海伺服器(網域名稱:www.shanghai.com)
4.比如北京的web伺服器的後台(www.beijing)