【HTTP】401未经授权的错误及其通常解决方案
今天早上寫api自動化測試的時(shí)候報(bào)了一個(gè)錯(cuò)誤:
Fatal: UncaughtException: AssertionError: expected { Object (_events, _eventsCount, …) } to have status code 200 but got 401
與之有關(guān)的代碼塊具體如下:
it("GET /users with admin", function (done) {chai.request(server).get("/users").set("user", encodeURI(JSON.stringify(user))).end((err, res) => {expect(err).to.be.nullexpect(res).to.have.status(200)done()})})然后他把錯(cuò)的意思也非常明顯,就是說你應(yīng)該返回200狀態(tài)碼的,但是我在測試的時(shí)候卻返回了401,我們知道,以數(shù)字4開頭的錯(cuò)誤或狀態(tài)代碼通常表示客戶端錯(cuò)誤。 換句話說,問題與客戶端請求有關(guān),或者直接由客戶端本身引起,且401具體是和身份認(rèn)證有關(guān),那么我們很好推理這次的錯(cuò)誤存在就是我們想要驗(yàn)證admin身份時(shí)出現(xiàn)了問題。那么有什么解決的思路呢,我在網(wǎng)上查到了如下幾種思路:
(1)在某些情況下,您可以在瀏覽器中手動輸入一個(gè)URL(統(tǒng)一資源定位符),或者您已為書簽添加了過時(shí)的URL,因此您可以使用該URL。 這是常見錯(cuò)誤,可以通過檢查拼寫錯(cuò)誤或檢查URL是否仍然可行來解決。
(2)您會驚訝于錯(cuò)別字是我們401問題背后的最常見原因。 可以使用以下工具來避免憑據(jù)中的拼寫錯(cuò)誤: Dashlane –您無需在每次登錄時(shí)都重新輸入憑據(jù)。
(3)如今,再也沒有人能夠清除瀏覽歷史記錄或Cookie。 除了隨著時(shí)間的推移收集大量數(shù)字垃圾外,這種習(xí)慣還可能在您嘗試登錄到您喜歡的任何網(wǎng)站時(shí)導(dǎo)致401錯(cuò)誤問題。事實(shí)是cookie是存儲您的一些個(gè)人信息的摘要,包括登錄信息。 他們可以提醒網(wǎng)站您是誰,但有時(shí)無法正常工作。如果您收到401,但確定不是錯(cuò)字,請嘗試清除瀏覽歷史記錄,Cookie和緩存,然后重試。 這是您可以執(zhí)行的操作。
(4)造成401錯(cuò)誤的另一個(gè)原因可能是DNS(域名系統(tǒng))服務(wù)器問題。 幸運(yùn)的是,這個(gè)問題很容易解決。
·對于Windows OS用戶–以管理員身份登錄到您的計(jì)算機(jī)。 在搜索欄中鍵入“ CMD”以打開命令提示符。 在命令提示符中,鍵入以下“ ipconfig / flushdns”,然后按Enter。
·對于Mac OS用戶–按下Command和空格鍵以打開Spotlight搜索。 在那里,輸入“ Terminal”。 在命令界面中,鍵入以下內(nèi)容:sudo killall -HUP mDNSResponder“。
然后我再仔細(xì)看了看我上面寫的那塊代碼,嗯……我為什么再驗(yàn)證admin用戶的時(shí)候把名字寫成user了呢???
.set("user", encodeURI(JSON.stringify(user))) //腦子犯抽.set("user", encodeURI(JSON.stringify(admin))) //正確寫法原來就是早上剛工作的時(shí)候腦子犯抽想要改下面的一個(gè)名稱結(jié)果看錯(cuò)代碼塊把上面的這一個(gè)地方給改了,真是哭笑不得。所以說諸如此類拼寫/看走眼等看似不起眼的與技術(shù)無關(guān)緊要小問題反而有時(shí)候能夠釀成大禍,造成的后果也由于不易發(fā)現(xiàn)而變得嚴(yán)重,所以無論是寫代碼還是做其他工作,嚴(yán)謹(jǐn)小心永遠(yuǎn)是個(gè)好的工作品質(zhì)。
總結(jié)
以上是生活随笔為你收集整理的【HTTP】401未经授权的错误及其通常解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 异星工厂服务器无响应,异星工厂无法联机解
- 下一篇: CSDN 社区年终总结|回顾 2021