吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 647|回复: 19
收起左侧

[求助] 关于前端vue+post请求,后端springboot重定向失败的问题

[复制链接]
八月未央 发表于 2021-9-22 23:23
本帖最后由 八月未央 于 2021-9-22 23:26 编辑
new Vue({
    el:"#vvv",
    data:{
        username:"",
        password:""
    },
    methods:{
        submitLogin () {
            let data = {name:this.username,password:this.password};
            axios.post("/userLogin.do", data).then(res => {

            }).catch(function (error) {

            })
        }
    }
});

以上是vue的js代码。

<div class="container" id="vvv">
        <form @submit.prevent="submitLogin">
            <div class="mb-3">
                <label for="InputUsername" class="form-label">用户名</label>
                <input type="text" class="form-control" id="InputUsername" v-model="username" placeholder="请输入用户名">
            </div>
            <div class="mb-3">
                <label for="InputPassword" class="form-label">密码</label>
                <input type="password" class="form-control" id="InputPassword" v-model="password" placeholder="请输入密码">
            </div>
            <div class="mb-3 form-check">
                <input type="checkbox" class="form-check-input" id="exampleCheck1">
                <label class="form-check-label" for="exampleCheck1">Check me out</label>
            </div>
            <button class="btn btn-primary">Submit</button>
        </form>
    </div>

以上是html

@PostMapping("/userLogin.do")
public String userLogin(@RequestBody User user) {

//省略查询用户,这里没问题
       if(result!=null){
            //用户存在

            System.out.println("YES");
                                                //这里能打印

           return "redirect:index.html";

        }else{
            System.out.println("NO");
                                                //这里能打印
            return "redirect:error.html";
        }

    }

以上是controller的关键代码。     2个System.out.println都能打印,最后问题出在了重定向上

错误登录,post请求,抓包以后,响应头有“Location: http://xxx/error.html” .,可是,原html页面没刷新(因为表单内容都在)。但是又有抓到重定向的error.html。  请问这个问题如何解决?

是不是axios.post的then里面还要写东西?或者说事件修饰符不对?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

我今天是大佬 发表于 2021-9-23 08:49
Vue属于SPA, 单页面应用不会有"页面跳转",因此spring无法控制重定向, 不过spring可以返回类似{msg:"跳转"}这样的代码, vue接受到后this.$router.push("/index"),

以上
zcjhnb 发表于 2021-9-23 14:42
例如我这两天写的练习代码
//这里是路由的配置代码,带/的为父文件
{
    path: "/home",
    name: "Home",
    component: Home,
//childern为子文件
    children: [
      {
        path: "studentsList",
        component: StudentsList,
        meta: {
          title: "学生管理",
          nextTitle: "学生列表",
        },
      },
//当你需要跳转到子文件时,只需要如下代码
this.$router.push('/studentsList')把这段代码写到判断内或直接写到按钮的@cilck事件内都可以
坏人。丶 发表于 2021-9-22 23:42
所以为啥需要后端来重定向呢。。 vue+router  router跳转到页面不行嘛
沫沫的诗敏 发表于 2021-9-22 23:48
那个提交的请求,好像是前后端分离的请求吧,用路由吧。不太懂,插个眼,帮顶
 楼主| 八月未央 发表于 2021-9-22 23:59
坏人。丶 发表于 2021-9-22 23:42
所以为啥需要后端来重定向呢。。 vue+router  router跳转到页面不行嘛

昨天才学vue。求指教,如何改造
157239486 发表于 2021-9-23 05:17
如果是前后端分离,就在路由定义规则,直接push地址,看你如果刚学是前后集成的,那你得改变下思路了,你这个访问后段返回给vue页面的只能是一个具体的值,然后在vue返回结果 then后再去处理你想跳转还是其他的事,你先不要搞跳转了,你先让后端返回给一个yes,然后前端拿到值conslog一下,先把流程搞明白
不苦小和尚 发表于 2021-9-23 07:34
后台只能改变响应内容,就是说返回重定向后的页面内容给前端,前端只能拿到内容
luffysk 发表于 2021-9-23 08:55
vue是单页面应用,只存在一个html,它切换页面都是通过路由实现的,后端只负责返回数据
luffysk 发表于 2021-9-23 08:56
后端的数据只是用来展示的,不应该影响到前端的行为
清风浮云net 发表于 2021-9-23 09:05
返回对应的code状态,前端跳转就可以了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2021-12-6 12:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表