调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……
API 提供正确的 HTTP 头不是基本要求吗?
1
kslr 2015-03-09 16:10:38 +08:00 via Android 1
restful api, http api
|
2
learnshare 2015-03-09 16:29:17 +08:00 2
写 API 的兴许状态码都不懂,就知道 200
|
3
airyland 2015-03-09 16:34:40 +08:00 1
顺便吐槽一下,很多统计服务或者广告联盟的MIME Type都是不正确的。吐槽已久,问能不能改一下,回:腾讯它们不也是这样返回的?
|
4
halfcrazy 2015-03-09 16:35:54 +08:00 1
记得好像可以API始终返回200,然后把真正的状态码放到返回值里面
|
5
scys 2015-03-09 17:16:49 +08:00 1
@learnshare 我一般写API都是默认返回200,如果是系统错误,就返回50x,如果没有API就返回40x
业务逻辑 返回值 和HTTP ERROR CODE没有直接关系 |
6
otakustay 2015-03-09 17:26:53 +08:00 1
你见过非200响应要扣KPI的公司吗,反正我是见过
|
7
pi1ot 2015-03-09 17:29:03 +08:00 1
之前听前端工程师说有些浏览器在非200返回时拿不到AJAX调用的response
|
8
awanabe 2015-03-09 17:29:43 +08:00 1
API的HTTP头表明的是api是否可用, 不代表执行正确.
|
9
blacktulip 2015-03-09 17:30:56 +08:00
「调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……」
楼主你前面没有说又 |
10
blacktulip 2015-03-09 17:34:01 +08:00 1
好吧找到了,又在题目里。楼主应该写个小 helper ,出问题就把 response 过一次,不要用眼睛去找
|
11
kernel1983 2015-03-09 17:34:46 +08:00 1
论全桟的重要性
|
13
zhicheng 2015-03-09 17:45:11 +08:00 1
那些不遵守 HTTP 规范的,有考虑过写 Client 的人的感受吗?HTTP 的状态码就是给 HTTP 之上的业务使用的,要不然根本就不需要设计这个东西。
|
14
learnshare 2015-03-09 17:45:31 +08:00
HTTP 状态码有它的具体含义,代表特定状态,跟语言、数据库、前后端没关系,更跟 KPI 没关系。
|
15
Viztor 2015-03-09 17:46:47 +08:00
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 2015-03-09 17:49:07 +08:00 1
为什么api请求会返回403......
既然你有了相应的返回值,那么不就是正确响应,应该是200么? 就算返回403,难道你不去分析返回的body了么? |
17
155 2015-03-09 17:49:17 +08:00 2
部分ISP会劫持非200请求, 剩下的连200都劫.
|
18
dongin 2015-03-09 17:50:10 +08:00 1
有一种坑叫我以为
|
19
jarlyyn 2015-03-09 17:56:07 +08:00
200,301,500这种 状态是http链接本身的状态,应该是记录在服务器日志里,给运维看的。由客户端自动处理的,和缓存状态有关。是容器的状态。
业务的逻辑是返回的数据,我觉得并在一起才不符合我的审美。 |
20
sophymax 2015-03-09 17:59:30 +08:00 1
自己的接口为了减少被人乱分析的概率 , 成功的不成功的全部返回404 , 要是在公司这么干不知道领导会不会让我收拾东西走人
|
21
learnshare 2015-03-09 17:59:42 +08:00
|
22
zhicheng 2015-03-09 18:02:47 +08:00 3
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 2015-03-09 18:04:56 +08:00 1
我感觉api的HTTP CODE直接交给路由本身来处理更加合适吧,通了就是200,服务器错误就是5XX。
业务返回码自己在返回值里面定义。 |
24
kxxoling OP |
25
tczzjin 2015-03-09 20:36:41 +08:00 1
如果是wap页面又返回非200状态码的话,移动电信会劫持这个返回,之后再也不调用这个接口了
|