1.從400變成404
我相信有很多人都用過Ajax技術(shù)來獲取數(shù)據(jù),一般都是使用get來獲取的,但是敏感信息就不能繼續(xù)用get了,于是就換成了post,但是用post的時(shí)候有時(shí)候發(fā)生一些奇怪的事情,比如直接訪問是400,加上header和data訪問是404,這就令人疑惑了,為什么不是從一開始就報(bào)錯(cuò)404呢?
2.400的原因
400在http狀態(tài)碼中的意思是服務(wù)器不理解你的請求,這時(shí)候你應(yīng)該檢查一下自己的請求格式,因?yàn)閜ost是提交的header和body(data),如果你沒有header那么報(bào)錯(cuò)是正常的,檢查header可以用Postman這個(gè)谷歌插件來檢查,這插件可以告訴你缺少什么參數(shù)或者是格式是否正確,使用方法就不贅述了建議百度。一般header格式如下
下面是http格式的頭部
3.404的原因
如果你加上頭部卻404了,那么千萬不要慌張,這時(shí)候你已經(jīng)請求成功了,只是數(shù)據(jù)404了而以,不要看見頁面上寫著404就慌張了,這時(shí)候你應(yīng)該注意自己的body(data)內(nèi)容,看過http的應(yīng)該都懂,header是請求頭,body里面才是真實(shí)的數(shù)據(jù),數(shù)據(jù)不帶是查不出東西的,而且data格式一般是特殊的,你得和后臺(tái)好好商量body格式問題,是字符串還是對(duì)象的body,這里我舉兩個(gè)例子,下面這個(gè)是對(duì)象格式
這時(shí)候控制臺(tái)輸出的data格式是這樣的:
這里如果你的后臺(tái)是接受字符串的格式,那么你就會(huì)報(bào)錯(cuò)404,那你就該換種格式,應(yīng)該把對(duì)象用JSON.stringify把body(data)轉(zhuǎn)化成字符串格式,如圖
這里的data如果你輸出就能發(fā)現(xiàn)它的格式是:
這里是簡單的字符串拼接而已,如果你有時(shí)間你甚至可以自己拼這么一串字符然后當(dāng)body傳過去