【发布时间】:2021-11-14 17:56:23
【问题描述】:
我正在尝试向端点发送表单,但收到错误禁止 403,并且我已经尝试过 api 测试并且端点工作正常
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,
headers: { "Content-Type": "multipart/form-data" },
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});
}
【问题讨论】:
-
第一步...删除
Content-type标头you don't need it。 403 响应表明您的身份验证凭据不允许您请求相关资源。您在上面的代码中似乎根本没有任何凭据,因此您需要分享更多信息 -
我已经添加了一个图像,我已经能够使用测试 api 做到这一点
-
您尝试发布到的站点要求在请求 cookie 中存在 CSRF token。您应该能够在收到的回复中看到这方面的详细信息。基本上,该站点不希望外部方发布内容。它也不支持 CORS 访问
-
我正在向它传递一个 CSRF 令牌,但如果它在测试 api 中有效,如果我放置相同的令牌,为什么不能在我的应用程序中?
-
在哪里?您的 Axios 请求中没有类似的内容。如果你已经在 cookie 中有令牌,你可以 try adding
withCredentials: true但我认为你只会遇到 CORS 错误
标签: javascript reactjs axios react-hooks form-data