对于仅针对AJAX的URL的非AJAX请求,我应该返回什么状态代码?

时间:2011-03-14 12:05:41

标签: ajax http http-status-codes

如果请求的URL不使用AJAX,应该返回什么状态代码? 400?

3 个答案:

答案 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:)