【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面,求问大神怎么更改?火狐可以一次成功,谷歌两次,第一次貌似成功了,然后又给我退出来了,第二次才登进去

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

进登录页,地址栏没有问号:

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

第一次点击登陆,地址栏多一个问号:报catch中的错误

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

第二次点击登陆,就可以进入主页了

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

catch错误信息:

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面
但是network里第一次点击没有捕捉到url

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面

回答

原来是button标签,我改成别的标签,submit 或者span都可以,只有button会第一次请求post失败,第二次成功,并且只有谷歌有这个问题

真的是这么回事,特意来感谢作者,浪费了大量时间找问题啊。好生气的

找到了原因。其实是因为button被绑定到了表单中,点击button时候同时执行了表单的提交和自己设置的onclick的触发,导致一个空的表单提交重置了当前的请求。直接在form上设置为 onsubmit="return false" 就能阻止表单提交了。

var url = 'xxxx';

var data ={

"xxx":"xxx",

"yyy":"yyy"

};

this.$http.post(url, data)

.then(res => {

if (res.body.result == '') {

alert('结果为空!');

this.Data = [];//Data在return中

} else {

//接收response中的结果,(可能路径不同,可能是res.data什么的,控制台看一下便知)

this.Data = res.body.result;

}

}, res => {

alert('获取失败!');

})

看了你代码没什么问题啊感觉,多了问号可能是路由带了参数(query)?还有一次两次什么的我没明白怎么回事,catch块也没看到。

第一次点击登录之后报了catch中的错,可以贴一下catch块的代码和控制台报错内容吗?
还有多出来的问号“?”我猜想应该是和路由跳转有关的。

如果要使用@click 事件,可以把button放在form外面,这样地址栏就不会产生问号'?'了

以上是 【Vue】vue this.$http.post第一次请求后地址栏多了一个?号,返回catch里的错误信息,第二次成功登进主页面 的全部内容, 来源链接: utcz.com/a/76879.html

回到顶部