vue-resource为何发送请求后总是跳转页面

发布于 2022-09-04 13:14:53 字数 2670 浏览 13 评论 0

我使用vue-resource发送post请求到后台,获取返回的数据。后台是java。可是获取到数据后总是进行了页面跳转。js如下:

/**
 * 
 */
var app = new Vue({
    
    el: "#register",
    
    data: {
        registerUrl: "/KindlePocket/bindingData",
        newUserInfo: {
            userName:'',
            phone:'',
            email:'',
            emailPwd:'',
            kindleEmail:''
        }
    },
    
    methods: {
        register: function() {
            console.log('123');
            this.$http.post(this.registerUrl, this.newUserInfo, { emulateJSON: true })
                .then((response) => {
                console.log(response.data);
            })
        }
    }
})

then并没有获取到response数据。后台java如下:

@RequestMapping(value = "/bindingData")
    @ResponseBody
    public Subscriber bindingData(HttpServletRequest request, HttpServletResponse response,
            @RequestParam("phone") String phone, @RequestParam("userName") String userName,
            @RequestParam("email") String email, @RequestParam("emailPwd") String emailPwd,
            @RequestParam("kindleEmail") String kindleEmail) {
        if (logger.isInfoEnabled()) {
            logger.info("phone:" + phone + "userName" + userName + " email:" + email + " emailPwd:" + emailPwd
                    + " kindleEmail:" + kindleEmail);
        }
        Subscriber s = new Subscriber();
        s.setPhone(phone);
        s.setUserName(userName);
        s.setEmail(email);
        s.setEmailPwd(emailPwd);
        s.setKindleEmail(kindleEmail);
        
        Cookie[] cookies = request.getCookies();
        if (null != cookies) {
            for (Cookie cookie : cookies) {

                System.out.println("cookieName:" + cookie.getName() + " cookieValue:" + cookie.getValue());

                String subscriberOpenIdKey = cookie.getName();
                String subscriberOpenId = cookie.getValue();
                if (subscriberOpenIdKey.equalsIgnoreCase("subscriberOpenId")) {
                    this.ssbService.binding(subscriberOpenId, phone, userName, email, emailPwd, kindleEmail);
                    if (logger.isInfoEnabled()) {
                        logger.info("subscriber: " + subscriberOpenId + " has binded information!");
                    }
                } else {
                    if (logger.isInfoEnabled()) {
                        logger.info("no valid subscriber information received!");
                    }
                }
            }
        } else {
            System.out.println("no cookie received");
        }
        return s;
    }

我返回一个对象,js代码应该走到then中啊,可是实际代码执行了页面跳转,url是之前跳转到这个页面的url。
请问是哪里不对吗?谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜味拾荒者 2022-09-11 13:14:53

希望贴上html部分,包括在哪调用的register方法
我猜测应该是在form表单中的button点击事件调用的register,但是忘记了type='button'或者是prevet来阻止表单的默认行为了?

Java的部分以我的Java水平(弱鸡)暂时看不出来有什么问题

盛夏已如深秋| 2022-09-11 13:14:53

你看是不是页面的问题?在谷歌浏览器打个debugger

空城之時有危險 2022-09-11 13:14:53

应该是调用register方法的时候用的表单按钮,可以试试不用表单或者return false;阻止form提交

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文