如何为端点做全局设置
redux-api-middleware How to do global settings for endpoint
在redux-api-middleware
中,我们可以像下面这样创建一个API调用,
export function loadUsers() {
return {
[CALL_API]: {
headers: { 'Content-Type': 'application/json' },
endpoint: 'http://localhost:1337/users',
method: 'GET',
types: [LOAD_USERS_REQUEST, LOAD_USERS_SUCCESS, LOAD_USERS_FAILURE]
}
}
}
问题是,对于每个请求,我使用公共端点 http://localhost:1337
, 报头内容类型和授权令牌设置。
我需要一个地方来全局设置这些设置,从他们的官方文档我无法找到解决方案。有人知道吗?或者你有什么办法做到这一点吗?
提前感谢…
在中间件中,您可以访问存储状态,因此您可以将令牌和其他认证信息放入存储中,然后在中间件中使用它。
我遇到了同样的问题,并以这样的实现结束:
const callApiMiddleware = store => next => action => {
// skip everything which is not API call
const callAPI = action[CALL_API]
if (typeof callAPI === 'undefined') {
return next(action);
}
// the session info from store
const session = store.getState().session;
// perform request
const {endpoint, headers, method} = callAPI;
return fetch(endpoint, {
headers: Object.assign({
Authorization: `Bearer ${session && session.token}`
// you can add more default headers there if you would like so
}, headers),
method
});
};
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何构建'瞬间'在非全局区域设置中工作的函数
- 使用Snap.SVG设置关于端点的SVG行的动画
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 没有通过ajax调用设置Javascript全局变量
- 全局设置angular.js url根
- 从ngInit在AngularJS中全局设置自定义HTTP头
- 在精细上传器中动态设置端点
- 创建全局设置超时变量
- 如何使用 JSLint 全局设置“使用严格”
- bootstrap日期选择器全局设置语言
- Angular过滤器|全局设置格式化(最佳实践)
- 如何全局设置角矩时区
- JavaScript闭包使用全局设置对象或将其传递给每个函数
- 如何为端点做全局设置
- Restivus没有设置端点Meteor 1.4
- PHP全局设置URL并在每个页面中调用它
- 全局设置ajax请求的javascript变量
- asp.net mvc-在JavaScript中全局设置url