日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ajax学习系列——向服务器发送请求

發(fā)布時(shí)間:2023/12/20 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ajax学习系列——向服务器发送请求 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、如何發(fā)送請(qǐng)求?

如果需要向服務(wù)器發(fā)送請(qǐng)求,我們使用的是XMLHttpRequest對(duì)象中的open()和send()方法。

var xhr = new XMLHttpRequest();//具體創(chuàng)建對(duì)象方法可以參考我的上一篇博客。 xhr.open("GET","http://www.baidu.com",true); xhr.send();

open(method,url,async)函數(shù)參數(shù)介紹:

  • method:請(qǐng)求的類型;只可能是GET或POST;
  • url:服務(wù)器地址或請(qǐng)求的文件在服務(wù)器的位置;
  • async:true(異步請(qǐng)求)或false(同步請(qǐng)求)

send(string)函數(shù)參數(shù)介紹:

  • string:僅用于POST請(qǐng)求,表示請(qǐng)求攜帶的數(shù)據(jù),必須轉(zhuǎn)換成字符串類型才可以發(fā)送請(qǐng)求。

2、使用GET還是POST?

和POST相比,GET更簡(jiǎn)單而且更快,大部分情況下使用的都是GET請(qǐng)求,默認(rèn)請(qǐng)求類型也是GET,POST請(qǐng)求適用于以下情況:

  • 無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫(kù))
  • 向服務(wù)器發(fā)送大量數(shù)據(jù)(數(shù)據(jù)量大使用POST方便,因?yàn)镻OST沒有數(shù)據(jù)類限制)
  • 發(fā)送包含未知字符的用戶輸入時(shí),POST比GET更穩(wěn)定也更可靠。

帶參數(shù)的GET、POST請(qǐng)求實(shí)例:

//GET請(qǐng)求 xhr.open("GET","/Login?username=root&password=root",true); xhr.send(); //POST請(qǐng)求 xhr.open("POST","/Login",true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//向請(qǐng)求添加HTTP頭,固定寫法。 xhr.send("username=root&password=root");

3、true(異步)還是false(同步)?

下面給大家介紹一個(gè)場(chǎng)景,可以更好的理解同步和異步的區(qū)別:

一個(gè)人在網(wǎng)上購(gòu)買了一個(gè)東西,如果他一直在家等,在這個(gè)期間,老板讓他去上班不去,一直等到快遞到了之后才去干其他的事情,這就是同步;如果他先去上班,等到快遞到了再去拿,這就是異步。

同步和異步的區(qū)別就是如此:是一直等待一個(gè)請(qǐng)求完成才去干別的事情還是在請(qǐng)求未完成時(shí)就去干別的事情等待請(qǐng)求完成。

  • XMLHttpRequest對(duì)象如果要用戶Ajax的話,必須使用異步請(qǐng)求,即async設(shè)置為true

async = true

當(dāng)使用異步請(qǐng)求時(shí),請(qǐng)規(guī)定在相應(yīng)處于onreadystatechange事件中的就緒狀態(tài)時(shí)執(zhí)行的函數(shù),實(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ā)送同步請(qǐng)求時(shí),請(qǐng)不要寫onreadystatechange函數(shù),直接把代碼放在send方法下面即可

xhr.open("GET","/GetInfo",false); xhr.send(); document.getElementById("myDiv").innerHTML=xhr.responseText;

?

轉(zhuǎn)載于:https://www.cnblogs.com/guo-xu/p/10506931.html

總結(jié)

以上是生活随笔為你收集整理的Ajax学习系列——向服务器发送请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。