reactjs - CORS:通过 webpack-dev-server 将 localhost 代理到外部 API
问题描述
我正在构建简单的反应驱动的联系页面,如果我可以测试从本地开发机器发送的电子邮件,那就太好了。我正在使用我测试过的Zoho Email APIcurl
和Insomnia - 一切都很好,我可以发送电子邮件。
当我尝试通过 React 应用程序执行相同操作时,问题就开始了axios
。该应用程序本身通过本地提供webpack-dev-server
。没有通过代理请求wds
,浏览器就会报错CORS
。但是,当我尝试通过wds
设置适当的标头代理请求时,我受到了欢迎,400 Bad Request
并没有更多的帮助进行调试。
相关wds
设置:
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin')
exports.devServer = ({ host, port } = {}) => {
const plugin = new ReactRefreshWebpackPlugin()
return {
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers':
'X-Requested-With, content-type, Authorization',
},
proxy: {
'/api/accounts/ZOHO_ID_NOT_SHOWN/messages': {
target: 'https://mail.zoho.eu',
secure: false,
},
},
https: true,
contentBase: path.join(__dirname, 'assets'),
stats: 'errors-only',
historyApiFallback: true,
overlay: true,
hot: true,
host,
port,
},
plugins: [plugin],
}
}
以及我axios
用来发送电子邮件的功能:
const sendEmail = async () => {
const { name, email, message } = formState
try {
const response = await axios({
method: 'post',
url: EMAIL_SEND,
headers: { Authorization: EMAIL_AUTH },
data: {
toAddress: EMAIL_TO,
subject: `Message from ${name} @ ${email}`,
content: message,
},
})
console.log(response) // debugging
} catch (e) {
console.log(e.response)
}
}
在上面的函数中,EMAIL_SEND
是从其他地方导入的,它的值是/api/accounts/ZOHO_ID_NOT_SHOWN/messages
- 镜像wds
代理值。
通过上述设置,当我尝试从 localhost 发送测试电子邮件时,我得到了400 Bad Request
……而且仅此而已。我确定问题在于我如何通过代理请求,wds
但我有点想不出如何解决它。任何建议将不胜感激!
解决方案
推荐阅读
- amazon-web-services - Cannot read credentials from /.aws/credentials
- docker - 如何提高或调试 docker 覆盖网络的弹性?
- php - 当我尝试上传文件大小为 MB 的图像时。只返回文件名而不是文件大小....(在 PHP 中)
- perl - 使用 BUILDARGS 替换角色中的类
- c# - 直接在应用程序中实现相机
- java - 我的数据库已经更新,但我的 android studio 仍然没有更新,仍然显示之前获取的数据库
- typescript - How to validate indian mobile number using Pattern in Angular 6
- vb.net - mdiparent form inside mdiparent form
- angular - post方法的响应为空
- python - 使用 python 从 AWS S3 到 PostgreSQL Amazon RDS 的 CSV 文件