1
minami 2020-04-17 20:29:10 +08:00 6
众所周知 EMUI 已经把安卓底层掏空了,到时候抽掉框架就是 homo 系统。所以当然是开发者适配不力的锅了,华为只是“兼容安卓”而已
|
2
mogutouer OP 万万没想到,2020 年了,HTTP 底层的 3XX 代码还需要程序员主动判断再处理,附 2014 年 RFC 7231 标准 https://tools.ietf.org/html/rfc7231#section-6.4.2
|
3
Seanfuck 2020-04-17 20:41:37 +08:00 via iPhone
又一个不买华为的理由[dog]
|
4
kokutou 2020-04-17 20:43:12 +08:00
做个 workaround 嘛。。。
没有专门的 workaround 突击小队嘛? |
5
zsj950618 2020-04-17 21:57:34 +08:00
我感觉你这用法有点问题,
看 303 定义 The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI.[24] 你是 POST 到一个 url,然后 server 返回了 303 到阿里 OSS ?总感觉不是很对。 |
6
mogutouer OP @zsj950618 #5 对啊,我原本是 301,但部分手机会把 POST 请求也丢给 OSS,因为 OSS 接受不了 POST 请求,只有上传文件的时候可以 POST,所以 OSS 那边会返回 405 。
然后查资料发现 303 是把无论什么请求最后都变成 GET 请求到目标地址,正好符合 OSS 的规则,所以就用 303 了。 没问题的,我 POST userid 给后端,后端解析了之后让客户端去 GET 一个静态 json 文件,没毛病的,我要的也是 GET 。 如果是 POST 转 POST 需要重新发送资料,就要用 307 或 308 |
7
mogutouer OP 303 的文字描述是 See Other
本来是意思是用在比如你提交了表单了,服务器判断了,然后让你去一个结果页,那么这个结果页当然不需要再发送或接收数据,只是让你看结果,正所谓的 See Other,就是 GET 过去看。 因为之前的 301 302 有点混乱,后来又搞了清晰的 303 307 308 这些 |