跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 华为手机不认 HTTP 303
未分類
29 4 月 2020

华为手机不认 HTTP 303

华为手机不认 HTTP 303

資深大佬 : mogutouer 15

我们一个小程序,因为内容有些是提前生成的,所以获取用户 ID 后,就 303 转到提前在 OSS 上的一个对应的 json 文件,运行了一段时间后其中有一个客户反馈说始终载入不到内容。

我们用该用户的 ID 测试接口一切都正常,但客户真机就是不行,然后我们把客户加到开发者然后用真机调试,发现请求没问题,也得到了了 303 的状态并且 Location 也返回了对应的地址,地址也是正常并且有内容的。

之前用 301 因为阿里云 OSS 的文件不能用 POST 请求,否则会 405 MethodNotAllowed,所以改成了用 303,强制 GET 到那边去。

但是华为手机获取到 303 之后就抛个 Error,然后就没然后了。

目前用户累计一百多个手机型号,唯独华为有这个问题,请问这个锅谁背?

手机型号:HUAWEI Mate 20 Pro ( LYA-L29 )
系统版本:10.0.0.198
微信版本:7.0.13
小程序基础库版本:2.10.4

大佬有話說 (9)

  • 資深大佬 : minami

    众所周知 EMUI 已经把安卓底层掏空了,到时候抽掉框架就是 homo 系统。所以当然是开发者适配不力的锅了,华为只是“兼容安卓”而已

  • 主 資深大佬 : mogutouer

    万万没想到,2020 年了,HTTP 底层的 3XX 代码还需要程序员主动判断再处理,附 2014 年 RFC 7231 标准 https://tools.ietf.org/html/rfc7231#section-6.4.2

  • 資深大佬 : Seanfuck

    又一个不买华为的理由[dog]

  • 資深大佬 : kokutou

    做个 workaround 嘛。。。

    没有专门的 workaround 突击小队嘛?

  • 資深大佬 : zsj950618

    我感觉你这用法有点问题,

    看 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 ?总感觉不是很对。

  • 主 資深大佬 : mogutouer

    @zsj950618 #5 对啊,我原本是 301,但部分手机会把 POST 请求也丢给 OSS,因为 OSS 接受不了 POST 请求,只有上传文件的时候可以 POST,所以 OSS 那边会返回 405 。

    然后查资料发现 303 是把无论什么请求最后都变成 GET 请求到目标地址,正好符合 OSS 的规则,所以就用 303 了。

    没问题的,我 POST userid 给后端,后端解析了之后让客户端去 GET 一个静态 json 文件,没毛病的,我要的也是 GET 。

    如果是 POST 转 POST 需要重新发送资料,就要用 307 或 308

  • 主 資深大佬 : mogutouer

    303 的文字描述是 See Other

    本来是意思是用在比如你提交了表单了,服务器判断了,然后让你去一个结果页,那么这个结果页当然不需要再发送或接收数据,只是让你看结果,正所谓的 See Other,就是 GET 过去看。

    因为之前的 301 302 有点混乱,后来又搞了清晰的 303 307 308 这些

  • 資深大佬 : zsj950618

    @mogutouer 好吧,用法看来是对的。

    但是众所周知,微信不用系统 webview 的,大概率还是微信的锅。

  • 資深大佬 : locoz

    @zsj950618 #8 主贴中提到了“目前用户累积一百多个手机型号,唯独华为有这个问题”

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具