【发布时间】:2020-05-06 22:18:53
【问题描述】:
我在尝试发送 POST 请求以登录用户时遇到了这个确切的错误:
[HPM] 尝试将请求 /api/login 从 localhost:3000 代理到 http://localhost:5000 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors) 时出错
起初我认为这是与如何在客户端和服务器之间设置代理有关的问题,但我可以很好地从后端获取数据。因此,当我尝试将数据发布到后端时,问题必须解决(我认为??)
这是我的 React 登录组件:
import React from 'react'
class Login extends React.Component {
state = {}
handlChange = event => {
const { name, value } = event.target
this.setState({ [name]: value })
}
handleSubmit = () => {
fetch("/api/login", {
method: "POST",
headers: {
'content-type': 'application/json'
},
body: JSON.stringify(this.state)
})
}
render() {
console.log(this.state)
return (
<div>
<form onSubmit={this.handleSubmit}>
<input type="text" name="username" value={this.state.username} onChange={this.handlChange} placeholder="Username" />
<input type="password" name="password" value={this.state.password} onChange={this.handlChange} placeholder="Password" />
<button>Login</button>
</form>
</div>
)
}
}
export default Login
按照 React 文档的建议,我在 src 文件夹中使用 setUpProxy.js 文件来设置代理,它看起来像这样:
const proxy = require("http-proxy-middleware")
module.exports = function(app) {
app.use(
'/api',
proxy({
target: 'http://localhost:5000',
changeOrigin: true
})
);
};
客户端应用程序是使用 create-react-app 构建的,如果这有什么不同的话
【问题讨论】:
-
当你的代码运行不正常时使用代码块而不是代码片段,例如因为它是针对服务器平台的。
标签: javascript node.js reactjs