如何使用axios发送Post请求?面试相关技术疑问
Axios POST 请求写法解析
你写的这段代码 axios.post(url, { data : obj}) 并不符合Axios的常规用法,除非你的后端接口明确要求请求体必须是一个包含data字段的对象,否则这种写法会导致后端无法正确解析你要传递的obj数据。
正确的实现方式
1. 基础POST请求(发送JSON格式数据)
Axios的post方法第二个参数直接就是要发送的请求体数据,不需要额外包裹data字段:
axios.post(url, obj) .then(response => { console.log('请求成功:', response.data); }) .catch(error => { console.error('请求失败:', error); });
这种情况下,Axios会自动设置请求头Content-Type: application/json,并将obj序列化为JSON字符串发送给后端。
2. 带配置项的POST请求
如果需要设置请求头、超时时间等额外配置,可以传入第三个参数作为配置对象:
axios.post(url, obj, { headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer your-token' }, timeout: 5000 }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });
3. 发送FormData格式数据(比如上传文件)
如果需要发送表单数据或文件,要先创建FormData对象,再作为第二个参数传入:
const formData = new FormData(); formData.append('username', 'john'); formData.append('avatar', file); // file是文件对象 axios.post(url, formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });
简单总结:你的写法多套了一层{data: obj},正常情况下直接传obj作为第二个参数即可,特殊场景再根据需求调整参数和配置。
内容的提问来源于stack exchange,提问作者dalpat raj
相关产品推荐
相关产品推荐

