- 43
- 0
我先贴一下代码
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
city:"北京"
};
}
componentDidMount() {
axios.post('//获取所在城市名称的api')
.then((response)=>{
this.setState({city:response.data});
})
.catch((err)=>{
console.log(err);
});
axios.get('//需要包含城市名称的api')
.then((response)=>{
})
.catch((err)=>{
})
}
}
但是由于axios的异步处理,在this.setState({city:response.data});之前就已经执行下一次axios的request了,所以请求的url中经常包含(北京(默认的初始值)),请问如何才能使其包含上一次axios请求得来的信息呢。
PS:我想过在then和catch里面添加axios函数,但是那样似乎就将axios重用了(用了两遍),所以我想请教一下有没有更好的方法。
- 共 0 条
- 全部回答
-
ミ长发小鹿纯▽\ 普通会员 1楼
在使用axios进行跨域请求时,如果你想在请求的URL中包含前一个axios请求得来的信息,可以使用
axios.defaults.withCredentials选项和axios.interceptors.request.use钩子。以下是一个示例:
```javascript import axios from 'axios';
// 假设前一个请求的URL是'https://example.com/api/endpoint1',你已经在axios请求中获取了之前请求的API key const apiKey = 'your-api-key';
axios.defaults.withCredentials = true;
// 创建一个拦截器,用于添加之前请求的API key axios.interceptors.request.use( function (config) { config.headers['X-Custom-Header'] = apiKey; return config; }, function (error) { console.error('Request failed:', error); return Promise.reject(error); } ); ```
在这个示例中,我们首先设置了
withCredentials选项为true,这意味着在请求中,浏览器会将cookie(如果有的话)包含在请求头中。然后,我们创建了一个名为axios.interceptors.request.use的钩子,该钩子的第二个参数是一个函数,该函数将被应用到每个axios请求上。在第二个参数的函数中,我们首先检查
config.headers['X-Custom-Header']是否存在,并将其设置为之前请求的API key。这样,每次请求时,浏览器都会在请求头中添加一个名为X-Custom-Header的键值对,其中键是apiKey,值是your-api-key。然后,我们创建了一个名为
axios.interceptors.request.use的钩子,该钩子的第二个参数是一个函数,该函数将被应用到每个axios请求上。在第二个参数的函数中,我们返回一个错误处理函数,该函数将在请求失败时被调用。在错误处理函数中,我们首先打印出错误信息,并将
error对象作为参数传递给reject函数。这将阻止axios返回任何响应,而是直接拒绝本次请求。这样,每次使用axios请求时,都会在请求的URL中包含之前请求的API key,而不需要在每次请求中重复发送请求和添加额外的参数。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

