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页面也必然是不妥的,给哥提示就差不多了