2個問題,使用javascript語言 Node.js express框架開發
1.一般情況下頁面請求數據,如果找不到,返回應該用res.send()去寫麼,還是應該res.sendStatus(404),後者可能不妥,那請問什麼情況下伺服器會主動返回404?
2.前端怎麼取處理這個404,是判斷嗎err.response.status把路由連結到404頁面嗎?但是瀏覽器裡始終會報錯not get
我想大声告诉你2017-05-16 13:39:32
404 即資源找不到。如果你使用 RESTful 語意的話,在資源找不到時應當回傳 404。如果不是 RESTful 語意的話,自己創造的語意,你得自己搞定。一般為了前端處理方便會回傳200,並在訊息正文裡寫上錯誤訊息。但是這樣可能會帶來其它問題。
這取決於你使用的框架。 「但是瀏覽器裡始終會報錯not get」不清楚你是個什麼情況。 404 本來就是一種錯誤嘛。
如果你是自己的 API,其實還好說。 我最討厭某些直接給瀏覽器的網頁,明明沒找到,非要返回個200甚至是302跳到一個叫「錯誤」的頁面。有些甚至還沒等我過去看就跳到首頁去了。 我連結多了個逗號手動去改不行啊?一個列表頁面裡那麼多鏈接,我點開看看哪些還在,結果出錯的全部跳轉到同一頁面了,我怎麼知道到底哪些鏈接失效了呢?
習慣沉默2017-05-16 13:39:32
後端回應了404的同時也是可以回傳響應體的。並沒有什麼不妥,找不到的路由必然需要回傳404
前端必然是需要有邏輯處理http的404狀態的,至於怎麼處理各有不同。但跳到404頁也必然是不妥的,給哥提示就差不多了