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 得到了解决方案: