调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……
API 提供正确的 HTTP 头不是基本要求吗?

调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……
API 提供正确的 HTTP 头不是基本要求吗?
1 |
2 learnshare Mar 9, 2015 写 API 的兴许状态码都不懂,就知道 200 |
3 airyland Mar 9, 2015 顺便吐槽一下,很多统计服务或者广告联盟的MIME Type都是不正确的。吐槽已久,问能不能改一下,回:腾讯它们不也是这样返回的? |
4 halfcrazy Mar 9, 2015 记得好像可以API始终返回200,然后把真正的状态码放到返回值里面 |
5 scys Mar 9, 2015 @learnshare 我一般写API都是默认返回200,如果是系统错误,就返回50x,如果没有API就返回40x 业务逻辑 返回值 和HTTP ERROR CODE没有直接关系 |
6 otakustay Mar 9, 2015 你见过非200响应要扣KPI的公司吗,反正我是见过 |
7 pi1ot Mar 9, 2015 之前听前端工程师说有些浏览器在非200返回时拿不到AJAX调的response |
8 awanabe Mar 9, 2015 API的HTTP头表明的是api是否可用, 不代表执行正确. |
9 blacktulip Mar 9, 2015 「调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……」 楼主你前面没有说又 |
10 blacktulip Mar 9, 2015 好吧找到了,又在题目里。楼主应该写个小 helper ,出问题就把 response 过一次,不要用眼睛去找 |
11 kernel1983 Mar 9, 2015 论全的重要性 |
13 zhicheng Mar 9, 2015 那些不遵守 HTTP 规范的,有考虑过写 Client 的人的感受吗?HTTP 的状态码就是给 HTTP 之上的业务使用的,要不然根本就不需要设计这个东西。 |
14 learnshare Mar 9, 2015 HTTP 状态码有它的具体含义,代表特定状态,跟语言、数据库、前后端没关系,更跟 KPI 没关系。 |
15 Viztor Mar 9, 2015 Some environments (like in-browser Javascript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers. --Wordpress API Docs |
16 jarlyyn Mar 9, 2015 为什么api请求会返回403...... 既然你有了相应的返回值,那么不就是正确响应,应该是200么? 就算返回403,难道你不去分析返回的body了么? |
17 155 Mar 9, 2015 部分ISP会劫持非200请求, 剩下的连200都劫. |
18 dongin Mar 9, 2015 有一种坑叫我以为 |
19 jarlyyn Mar 9, 2015 200,301,500这种 状态是http链接本身的状态,应该是记录在服务器日志里,给运维看的。由客户端自动处理的,和缓存状态有关。是容器的状态。 业务的逻辑是返回的数据,我觉得并在一起才不符合我的审美。 |
20 sophymax Mar 9, 2015 自己的接口为了减少被人乱分析的概率 , 成功的不成功的全部返回404 , 要是在公司这么干不知道领导会不会让我收拾东西走人 |
21 learnshare Mar 9, 2015 |
22 zhicheng Mar 9, 2015 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 10.1 Informational 1xx 10.2 Successful 2xx 10.3 Redirection 3xx 10.4 Client Error 4xx 10.5 Server Error 5xx 本来想说点儿啥的,想想还是不说了,自己看吧。 |
23 iyaozhen Mar 9, 2015 我感觉api的HTTP CODE直接交给路由本身来处理更加合适吧,通了就是200,服务器错误就是5XX。 业务返回码自己在返回值里面定义。 |
24 kxxoling OP |
25 tczzjin Mar 9, 2015 如果是wap页面又返回非200状态码的话,移动电信会劫持这个返回,之后再也不调用这个接口了 |