javascript - 什么時(shí)候后臺(tái)主動(dòng)返回404
問(wèn)題描述
2個(gè)問(wèn)題,使用javascript語(yǔ)言 Node.js express框架開發(fā)
1.一般情況下頁(yè)面請(qǐng)求數(shù)據(jù),如果找不到,返回應(yīng)該用res.send()去寫么,還是應(yīng)該res.sendStatus(404),后者可能不妥,那請(qǐng)問(wèn)什么情況下服務(wù)器會(huì)主動(dòng)返回404?
2.前端怎么取處理這個(gè)404,是判斷嗎err.response.status把路由鏈接到404頁(yè)面嗎?但是瀏覽器里始終會(huì)報(bào)錯(cuò)not get
問(wèn)題解答
回答1:404 即資源未找到。如果你使用 RESTful 語(yǔ)義的話,在資源未找到時(shí)應(yīng)當(dāng)返回 404。如果不是 RESTful 語(yǔ)義的話,自己創(chuàng)造的語(yǔ)義,你得自己搞定。一般為了前端處理方便會(huì)返回200,并在消息正文里寫上錯(cuò)誤信息。但是這樣可能會(huì)帶來(lái)其它問(wèn)題。
這取決于你使用的框架。「但是瀏覽器里始終會(huì)報(bào)錯(cuò)not get」不清楚你是個(gè)什么情況。404 本來(lái)就是一種錯(cuò)誤嘛。
如果你是自己的 API,其實(shí)還好說(shuō)。我最討厭某些直接給瀏覽器的網(wǎng)頁(yè),明明沒(méi)找到,非要返回個(gè)200甚至是302跳轉(zhuǎn)到一個(gè)叫「錯(cuò)誤」的頁(yè)面。有些甚至還沒(méi)等我過(guò)去看就跳轉(zhuǎn)到首頁(yè)去了。我鏈接多了個(gè)逗號(hào)手動(dòng)去改不行啊?一個(gè)列表頁(yè)面里那么多鏈接,我點(diǎn)開看看哪些還在,結(jié)果出錯(cuò)的全部跳轉(zhuǎn)到同一頁(yè)面了,我怎么知道到底哪些鏈接失效了呢?
回答2:后端處理。在所有路由都為匹配的情況下,發(fā)送404頁(yè)面
回答3:后端響應(yīng)了404的同時(shí)也是可以返回響應(yīng)體的。并沒(méi)有什么不妥,找不到的路由必然是需要返回404
前端必然是需要有邏輯處理http的404狀態(tài)的,至于怎么處理各有不同。但是跳轉(zhuǎn)到404頁(yè)面也必然是不妥的,給哥提示就差不多了
回答4:路由根據(jù)你的url 沒(méi)有找到 對(duì)應(yīng)的資源 ,所以 返回 404 沒(méi)有找到匹配的資源
相關(guān)文章:
1. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境2. html - sumlime text3代碼自動(dòng)補(bǔ)全功能問(wèn)題!3. web - css3 @keyframes用一次后面的任何樣式就解析不了了.4. javascript - 有一個(gè)異步獲取數(shù)據(jù)的函數(shù)A,其他依賴這個(gè)A得到的數(shù)據(jù)的函數(shù)是否都必須是異步的?5. css3 - 給body設(shè)置了translate3d,動(dòng)畫的同時(shí)導(dǎo)致內(nèi)部的fixed元素失效?6. node.js - win7 grunt不是內(nèi)部或外部命令。7. 想練支付寶對(duì)接和微信支付對(duì)接開發(fā)(Java),好像個(gè)人不可以,怎么弄個(gè)企業(yè)的呢?8. node.js - 用node做微信開發(fā)后臺(tái),獲取access_token報(bào)錯(cuò)9. css3 - 求css頁(yè)面解決方案10. javascript - 大神們,求救啊,搞百度編輯器,弄了三天了,問(wèn)題,如下
