Comments (5)
- 动态配置公共头是支持的,您可以在代码中任何地方动态设置公共请求头, 如下:
fly.config.headers["xx"]="xyz"
注意:设置公共请求头会对该fly实例发起的所有请求生效,如果你是想实现某次请求使用特定的请求头的话,不应该去动态改公共的请求头,而是应该设置本次请求的头,如:
fly.post(url,data,{
headers:{xx:"xyz"}
})
- 如果您想添加公共body, 可以通过请求拦截器去添加公共body,请求拦截器对该fly实例发起的所有请求有效,如:
fly.interceptors.request.use((config)=>{
var wrapBody={
common:{...}, //公共body
body:config.body //本次请求body
}
config.body=wrapBody
})
from fly.
我们是这种 token作为公共参数放到header里面,但是又不能写死 只能动态获取,因为token随时会刷新或者踢票。如果每个接口都单独加上 又显得麻烦。
context.params = {
...{
version,
subVersion,
channelType,
token: accountService.getToken()
},
...context.params
}
这样的话 目前就只能在公共的request拦截里面 注入token到headers里面了。
fly.config.headers的设置可以考虑这种:
export const promoteValue = (target = {}, funcArgs = []) => {
if (typeof target === 'object') {
return target
}
if (typeof target === 'function') {
return target(...funcArgs)
}
}
from fly.
@wendux 还有个疑问想了很久不明白。
var rqiPromise;
if (rqi.handler) {
rqiPromise = rqi.handler(options, Promise) || options;
}
这里 如果在handler里面调用 promise.resolve('haha')
在请求的then里面会接收到 haha
我看handler传参是Promise
, Promise.resolve()应该是返回一个新的Promise对象呀?
怎么会改变外层promise的状态导致直接resolve呢?
应该是继续往下走了,options的值是haha
rqiPromise.then((options) => {
// Normalize the request url
url = utils.trim(options.url);
var baseUrl = utils.trim(options.baseURL || "");
if (!url && isBrowser && !baseUrl) url = location.href;
from fly.
- 如果你要动态在header中设置token, 可以:
fly.config.headers.token="xxx"
这样不需要在拦截器里面设置啊,不是很明白你的意思。
2. 在handler中返回 promise.resolve('haha')
后,是应该直接终止本次请求,将'haha'作为本次请求返回的的数据,这块有问题,已修复,请将fly升级到>=0.3.6.
from fly.
fly.config.headers.token="xxx"
这样设置token 每次我token改变都要主动重新同步一下fly里面保存的token。
比如我清除了本地token,那就要执行
delete fly.config.headers.token
如果又重新登录了 那还要在登录成功的代码里加上
fly.config.headers.token = getToken()
数据流不应该这样。应该是每个请求在组装的时候都主动获取一次token。
比如这样:
fly.config.headers = () => {
token: getToken(),
version: 1.0.2
}
- 原来是代码没更新。我看了好久。新版代码就对了:joy:
from fly.
Related Issues (20)
- 个别接口如何不走拦截器 HOT 3
- 请求地址后拼参数有问题 HOT 1
- post 请求能同时传递 params 和 body 吗 HOT 1
- 支持拦截fetch请求吗 HOT 1
- 关于请求时TOKEN过期之后怎么再替换最新TOKEN之后再次请求该接口问题 HOT 1
- 小程序 uploadfile上传图片接口好像没走拦截器,导致上传中token过期上传失败没法重新请求? HOT 1
- node端禁止302重定向吗
- 官网上不去了,看不了文档了
- Uncaught ReferenceError: require is not defined HOT 1
- fly + wx.requestSubscribeMessage = fail can only be invoked by user TAP gesture
- 我搞了一个类似的请求库
- 为什么在jest里面始终超时啊
- 支付宝小程序引入 var Fly=require("flyio/dist/npm/ap") put请求在模拟器上可以,在真机上接收不到put的data数据 HOT 2
- 项目不维护更新了么?
- 为什么对 fly 实例解构赋值之后,get 等请求方法都无法使用
- fly请求微信的code2Session对返回的结果取data项返回的是字符串,而不是对象,我们必须手动去转换下 HOT 3
- 支付宝真机
- flyio调用clear时,控制台会报错
- 不同平台的fly实例建议按需到处
- 支付宝小程序引入后,报错
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fly.