axios跨域访问练习,拦截*.action请求
时间: 2023-08-16 07:46:16 浏览: 58
好的,以下是使用axios实现跨域访问并拦截*.action请求的基本步骤:
1. 在前端代码中使用axios发送请求时,需要设置`withCredentials: true`,表示允许携带跨域请求的cookie信息。
```javascript
axios.get('http://example.com/api/user.action', { withCredentials: true })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
```
2. 在后端服务器中,需要进行跨域访问的设置。以Node.js + Express为例,可以使用`cors`中间件进行设置。
```javascript
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({
origin: true,
credentials: true,
}));
app.get('/api/user.action', (req, res) => {
// 处理业务逻辑
res.send({ name: 'Alice' });
});
app.listen(3000, () => {
console.log('Server is running at http://localhost:3000');
});
```
3. 如果需要拦截所有*.action请求,可以使用axios的拦截器功能,对所有请求进行统一的处理。
```javascript
axios.interceptors.request.use(config => {
// 判断请求是否为*.action请求
if (/\.action$/.test(config.url)) {
// 设置请求头信息
config.headers['X-Requested-With'] = 'XMLHttpRequest';
// 添加请求参数
config.params = { ...config.params, _t: Date.now() };
}
return config;
}, error => {
return Promise.reject(error);
});
axios.get('http://example.com/api/user.action', { withCredentials: true })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
```
以上是使用axios跨域访问并拦截*.action请求的基本步骤。需要注意的是,跨域访问涉及到安全问题,应该谨慎使用,并且在后端服务器中进行严格的访问控制。