如何使用Axios提交表单数据 解决调用正常接口返回403错误问题
问题原因&修复方案
你遇到的403错误核心是手动指定了multipart/form-data请求头但缺少boundary分隔符参数,导致后端无法正确解析FormData,触发校验失败。
使用FormData作为请求体时不需要手动设置Content-Type,浏览器会自动生成携带正确boundary的请求头,修改代码如下:
const SendData = (event) => { event.preventDefault(); let respuestasUSer = new FormData(); respuestasUSer.set('curso', state.curso) respuestasUSer.set('nombre', state.nombre) respuestasUSer.set('q1', state.Pregunta1) respuestasUSer.set('q2', state.Pregunta2) respuestasUSer.set('q3', state.Pregunta3) respuestasUSer.set('q4', state.Pregunta4) respuestasUSer.set('q5', state.Pregunta5) respuestasUSer.set('q6', state.Pregunta6) respuestasUSer.set('q7', state.Pregunta7) respuestasUSer.set('q8', state.Pregunta8) axios({ method: "post", url: "https://covid.cit0.com/guardar/encuesta/", data: respuestasUSer, // 移除手动配置的Content-Type,由浏览器自动生成 }) .then(function (response) { console.log(response); }) .catch(function (response) { console.log(response); }); }
异常排查
如果修改后仍然报错,可按照以下步骤定位:
- 打开浏览器控制台网络面板,对比当前请求和API测试工具的请求头差异,补全缺失的校验字段,比如
X-CSRFToken、Authorization等 - 如果请求需要携带Cookie凭证,可在axios配置中添加
withCredentials: true参数 - 确认当前站点域名已在后端接口的跨域访问白名单内
内容的提问来源于stack exchange,提问作者Andres Mendez
相关产品推荐
相关产品推荐

