umijs / umi-next

The next version of umi. (under development)
https://next.umijs.org/
MIT License
608 stars 97 forks source link

request 支持 GBK 编码 #718

Open PeachScript opened 2 years ago

PeachScript commented 2 years ago

参考:https://github.com/umijs/umi-request/blob/master/src/utils.js#L83

migodev42 commented 2 years ago

看了下 request.tpl 的实现感觉有点问题 https://github.com/umijs/umi-next/blob/8f12c19ac5cca11d3a8b82969154c260e6d41287/packages/plugins/src/request.ts#L160

intercepter 是在同一 axios 实例中共享的。 在所有请求都是串行的情况下,request 上设置的 iterceptor 才在单个请求中生效。 而当请求并行时,可能出现某个 request 上的 iterceptor 覆盖掉其他请求的原本逻辑

比如下面这个例子,第一个请求的 iterceptor 会把后一个请求的 url 也改为 /api/hack image

image

migodev42 commented 2 years ago

这种是否需要提示下用户,不能直接在 request 上去配置 iterceptor。只能 1. 在 app.ts 中定义全局的 iterceptor 2. 新增透出一个 axios.create 的口子,在自己新建的实例上去添加 iterceptor。

migodev42 commented 2 years ago

另外我想尝试支持下 gbk 编码转换问题 🙋🏻‍♂️

YdreamW commented 2 years ago

在 app.ts 中定义全局的 iterceptor 2. 新增透出一个 axios.create 的口子,在自己新建的实例上去添加 iterceptor。

这个问题我们后面会调研讨论一下,是否有必要提供 ‘’给单独某次 request 请求添加拦截器 ‘’ 的功能。

YdreamW commented 2 years ago

另外我想尝试支持下 gbk 编码转换问题 🙋🏻‍♂️

欢迎!(* ̄︶ ̄) 可以直接提 pr