javascript - 什么時候后臺主動返回404
問題描述
2個問題,使用javascript語言 Node.js express框架開發
1.一般情況下頁面請求數據,如果找不到,返回應該用res.send()去寫么,還是應該res.sendStatus(404),后者可能不妥,那請問什么情況下服務器會主動返回404?
2.前端怎么取處理這個404,是判斷嗎err.response.status把路由鏈接到404頁面嗎?但是瀏覽器里始終會報錯not get
問題解答
回答1:404 即資源未找到。如果你使用 RESTful 語義的話,在資源未找到時應當返回 404。如果不是 RESTful 語義的話,自己創造的語義,你得自己搞定。一般為了前端處理方便會返回200,并在消息正文里寫上錯誤信息。但是這樣可能會帶來其它問題。
這取決于你使用的框架。「但是瀏覽器里始終會報錯not get」不清楚你是個什么情況。404 本來就是一種錯誤嘛。
如果你是自己的 API,其實還好說。我最討厭某些直接給瀏覽器的網頁,明明沒找到,非要返回個200甚至是302跳轉到一個叫「錯誤」的頁面。有些甚至還沒等我過去看就跳轉到首頁去了。我鏈接多了個逗號手動去改不行?。恳粋€列表頁面里那么多鏈接,我點開看看哪些還在,結果出錯的全部跳轉到同一頁面了,我怎么知道到底哪些鏈接失效了呢?
回答2:后端處理。在所有路由都為匹配的情況下,發送404頁面
回答3:后端響應了404的同時也是可以返回響應體的。并沒有什么不妥,找不到的路由必然是需要返回404
前端必然是需要有邏輯處理http的404狀態的,至于怎么處理各有不同。但是跳轉到404頁面也必然是不妥的,給哥提示就差不多了
回答4:路由根據你的url 沒有找到 對應的資源 ,所以 返回 404 沒有找到匹配的資源
相關文章:
1. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現Cannot connect to the Docker daemon.3. css - 定位為absolute的父元素中的子元素 如何設置在父元素的下面?4. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數賦值輸錯誤是什么原因?5. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。6. mysql里的大表用mycat做水平拆分,是不是要先手動分好,再配置mycat7. java - socket類服務端如何防止被ddos攻擊?8. javascript - 圖片鏈接請求一直是pending狀態,導致頁面崩潰,怎么解決?9. python - beautifulsoup獲取網頁內容的問題10. 怎么用css截取字符?
