我有一个React程序的路由问题。我正在为注册系统使用一个POST请求,每当我点击注册时,用户输入的密码和电子邮件地址,就会在URL中显示出来,这是我不想要的。我不知道为什么这个POST请求会在URL中显示这些东西。也只是把我带到一个空白页。我想这是.get('')的问题。
这是我点击 "注册 "时调用的代码。
onSubmitSignIn = () => {
fetch('http://localhost:3000/register', {
method: 'post',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
email: this.state.email,
password: this.state.password,
name: this.state.name
})
})
.then(response => response.json())
.then(user => {
if (user.id) {
this.props.loadUser(user);
this.props.onRouteChange('home');
}
})
}
这里是服务器上所有的路由。
app.get('/', (req, res) => { res.send() });
app.post('/signin', Signin.handleSignin(db, bcrypt));
app.post('/register', (req, res) => { Register.handleRegister(req, res, db, bcrypt) });
app.get('/profile/:id', (req, res) => { Profile.handleProfileGet(req, res, db)});
app.put('/image', (req, res) => { Image.handleImage(req, res, db)});
app.post('/imageurl', (req, res) => { Image.handleApiCall(req, res)});
有谁知道它为什么要创建URL参数?我没让它这么做。签到路由也是POST请求,但它没有这样做。
我会检查你的浏览器控制台,以确认它实际上是被发送作为一个 POST
而非 GET
. URL中的数据表明它是通过表单提交以GET方式提交的。我不认为这是错误的,但我会改变你的方法,从 post
到 POST
. 更有可能的是,我怀疑你的表单标记可能被设置为GET,而你的自定义获取逻辑没有正确地取消表单提交事件。