Ajax学习系列——向服务器发送请求
1、如何發(fā)送請求?
如果需要向服務器發(fā)送請求,我們使用的是XMLHttpRequest對象中的open()和send()方法。
var xhr = new XMLHttpRequest();//具體創(chuàng)建對象方法可以參考我的上一篇博客。 xhr.open("GET","http://www.baidu.com",true); xhr.send();open(method,url,async)函數(shù)參數(shù)介紹:
- method:請求的類型;只可能是GET或POST;
- url:服務器地址或請求的文件在服務器的位置;
- async:true(異步請求)或false(同步請求)
send(string)函數(shù)參數(shù)介紹:
- string:僅用于POST請求,表示請求攜帶的數(shù)據,必須轉換成字符串類型才可以發(fā)送請求。
2、使用GET還是POST?
和POST相比,GET更簡單而且更快,大部分情況下使用的都是GET請求,默認請求類型也是GET,POST請求適用于以下情況:
- 無法使用緩存文件(更新服務器上的文件或數(shù)據庫)
- 向服務器發(fā)送大量數(shù)據(數(shù)據量大使用POST方便,因為POST沒有數(shù)據類限制)
- 發(fā)送包含未知字符的用戶輸入時,POST比GET更穩(wěn)定也更可靠。
帶參數(shù)的GET、POST請求實例:
//GET請求 xhr.open("GET","/Login?username=root&password=root",true); xhr.send(); //POST請求 xhr.open("POST","/Login",true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//向請求添加HTTP頭,固定寫法。 xhr.send("username=root&password=root");3、true(異步)還是false(同步)?
下面給大家介紹一個場景,可以更好的理解同步和異步的區(qū)別:
一個人在網上購買了一個東西,如果他一直在家等,在這個期間,老板讓他去上班不去,一直等到快遞到了之后才去干其他的事情,這就是同步;如果他先去上班,等到快遞到了再去拿,這就是異步。
同步和異步的區(qū)別就是如此:是一直等待一個請求完成才去干別的事情還是在請求未完成時就去干別的事情等待請求完成。
- XMLHttpRequest對象如果要用戶Ajax的話,必須使用異步請求,即async設置為true
async = true
當使用異步請求時,請規(guī)定在相應處于onreadystatechange事件中的就緒狀態(tài)時執(zhí)行的函數(shù),實例如下:
xhr.onreadystatechange=function() { if (xhr.readyState==4 && xhr.status==200) { document.getElementById("myDiv").innerHTML=xhr.responseText; } } xhr.open("GET","/GetInfo",true); xhr.send();readyState和status
async = false
在發(fā)送同步請求時,請不要寫onreadystatechange函數(shù),直接把代碼放在send方法下面即可
xhr.open("GET","/GetInfo",false); xhr.send(); document.getElementById("myDiv").innerHTML=xhr.responseText;?
轉載于:https://www.cnblogs.com/guo-xu/p/10506931.html
總結
以上是生活随笔為你收集整理的Ajax学习系列——向服务器发送请求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZJOI 2017 线段树
- 下一篇: 方法和集合