为什么我的POST请求会创建URL查询字符串?

问题描述 投票:1回答:1

我有一个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请求,但它没有这样做。

javascript reactjs http url post
1个回答
1
投票

我会检查你的浏览器控制台,以确认它实际上是被发送作为一个 POST 而非 GET. URL中的数据表明它是通过表单提交以GET方式提交的。我不认为这是错误的,但我会改变你的方法,从 postPOST. 更有可能的是,我怀疑你的表单标记可能被设置为GET,而你的自定义获取逻辑没有正确地取消表单提交事件。

© www.soinside.com 2019 - 2024. All rights reserved.