axios get接收复杂数据类型
时间: 2023-10-17 12:25:29 浏览: 116
axios的get请求默认是将参数拼接在URL上发送的,因此不支持直接传递复杂数据类型。但是你可以使用axios的params选项来传递对象参数。例如:
```javascript
axios.get('/api/endpoint', {
params: {
foo: 'bar',
complexData: {
name: 'John',
age: 25,
address: {
street: '123 Main St',
city: 'New York',
state: 'NY'
}
}
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
```
在这个例子中,complexData是一个复杂的对象,它包含了嵌套的属性。axios会将params选项中的对象参数转化为URL查询参数的形式发送给服务器。
如果需要发送POST请求并传递复杂数据类型,可以使用axios的post方法,并将数据作为第二个参数传递。例如:
```javascript
axios.post('/api/endpoint', {
name: 'John',
age: 25,
address: {
street: '123 Main St',
city: 'New York',
state: 'NY'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
```
在这个例子中,复杂数据类型被直接传递给post方法的第二个参数。
请注意,如果需要发送JSON格式的请求体,需要设置axios的请求头`Content-Type`为`application/json`。你可以通过设置axios的defaults.headers.common配置项来实现全局设置。例如:
```javascript
axios.defaults.headers.common['Content-Type'] = 'application/json';
```
这样,在每个请求中都会带上`Content-Type: application/json`的请求头。
阅读全文