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

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

catch错误信息:

clipboard.png
但是network里第一次点击没有捕捉到url

clipboard.png

clipboard.png

回答:

原来是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外面,这样地址栏就不会产生问号’?’了

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注