如果请求的URL不使用AJAX,应该返回什么状态代码? 400?
答案 0 :(得分:8)
我认为403 Forbidden
最好。
501 Not Implemented
不合适,因为资源已实现,但不适合此类请求。
400 Bad Request
也不是一个好的选择,因为根据规范,这意味着“由于语法格式错误,服务器无法理解请求”,这不是这里的情况。
答案 1 :(得分:6)
我不相信你通过监管这个价值来帮助任何人。我更喜欢在所有情况下尝试发送有用数据的理念。然而,想象一下我们确实需要政策的类似情况并不是一件容易的事。例如,假设我们有一个可以根据mime类型返回JSON或XML的服务,如果指定了一个意外的mime类型,最好返回一个明确的响应代码。
W3 say
4xx代码适用于个案 客户似乎有 错误,以及案件的5xx代码 其中服务器知道的 服务器有错误。这是不可能的 区分这些案例一般,所以 差异只是信息性的。
身体部分可能包含一个 描述人类错误的文件 可读的形式。该文档是MIME 格式,并且可能只在text / plain中, text / html或格式的一个 指定为可接受的 请求。
所以很明显,响应应该是4xx,而不是客户端提供无效请求。我会选择400 BAD REQUEST并确保返回的文本解释了为什么请求被认为是错误的。
W3表示400:请求语法错误或者本质上不可能满足,而且确实如此。
答案 2 :(得分:1)
我会去400 Bad Request
,因为它暗示不重试请求。
失败,418 I'm a teapot
,只是为了混淆'em:)