axios POST 请求在部署到 AWS amplify 时不起作用
axios POST request not working when deploying to AWS amplify
我有一个部署在 aws amplify 上的网站,但由于某些原因 post 请求不起作用。这是 axios 函数的代码:
SendMail = async (e) => {
e.preventDefault;
if (this.state.name !== '' && this.state.email !== '' && this.state.message !== '' && this.state.subject !== '') {
await axios({
method: 'POST',
url: `/api/email`,
headers: {
'Content-Type': 'application/json',
},
data: {
subject: `tarasddas`,
body: `adsaadsasdas`
}
})
.then(
(res) => {
alert(res.status)
}
).catch(
(e) => { console.log(e) }
)
}
}
该函数在本地主机上运行,但当我部署它时没有任何反应。我收到错误:错误:网络错误,但这也发生在本地主机上,所以我认为这不是问题所在。同样,端点也有效。我已经使用 Postman 测试了端点,没有任何问题。我查看了日志并看到了这个:
它是请求的摘要,由于某种原因呈红色,没有状态代码。我认为这可能是由于网络错误造成的,因为本地主机上也发生了同样的事情。据我所见,正在向 axios 上的端点发出 post 请求,但由于某种原因它似乎不起作用。如果有任何帮助,我将不胜感激。
好的,所以我能够找到问题所在。我的 axios 请求一直在 chrome 上工作,但没有在 safari 上工作。解决方案是更改我用来调用请求的按钮。这是之前的:
<button onClick={(e) => this.SendMail(e)} className="btn table">Send</button>
为了解决这个问题,我添加了 type= "button" 这样的:
<button type="button" onClick={(e) => this.SendMail(e)} className="btn table">Send</button>
我从这个 post 得到了解决方案:
我有一个部署在 aws amplify 上的网站,但由于某些原因 post 请求不起作用。这是 axios 函数的代码:
SendMail = async (e) => {
e.preventDefault;
if (this.state.name !== '' && this.state.email !== '' && this.state.message !== '' && this.state.subject !== '') {
await axios({
method: 'POST',
url: `/api/email`,
headers: {
'Content-Type': 'application/json',
},
data: {
subject: `tarasddas`,
body: `adsaadsasdas`
}
})
.then(
(res) => {
alert(res.status)
}
).catch(
(e) => { console.log(e) }
)
}
}
该函数在本地主机上运行,但当我部署它时没有任何反应。我收到错误:错误:网络错误,但这也发生在本地主机上,所以我认为这不是问题所在。同样,端点也有效。我已经使用 Postman 测试了端点,没有任何问题。我查看了日志并看到了这个:
它是请求的摘要,由于某种原因呈红色,没有状态代码。我认为这可能是由于网络错误造成的,因为本地主机上也发生了同样的事情。据我所见,正在向 axios 上的端点发出 post 请求,但由于某种原因它似乎不起作用。如果有任何帮助,我将不胜感激。
好的,所以我能够找到问题所在。我的 axios 请求一直在 chrome 上工作,但没有在 safari 上工作。解决方案是更改我用来调用请求的按钮。这是之前的:
<button onClick={(e) => this.SendMail(e)} className="btn table">Send</button>
为了解决这个问题,我添加了 type= "button" 这样的:
<button type="button" onClick={(e) => this.SendMail(e)} className="btn table">Send</button>
我从这个 post 得到了解决方案: