springboot疑难杂症 #1

今天改一个别人写的项目,遇到了一个很奇怪的问题

(controller方法体上都写了@RestController @RequestMapping("/users")),

之前那个人前端用的是JQuery发送ajax请求,前端代码:

    $.ajax({
        url: "/users/login",
        type: "POST",
        data: $("#form-login").serialize(),
        dataType: "json",
        success: function (json) {
            if (json.state == 200) {
                // alert(json.data.previousUrl);
                alert("登录成功!");
                // 跳转回登陆前访问的页面
                if (json.data.previousUrl == null || json.data.toString().indexOf("favicon.ico") != -1)//避免 http://localhost:8080/favicon.ico
                    location.href = "index.html";
                else
                    location.href = json.data.previousUrl;
            } else {
                alert("登录失败!" + json.message);
            }
        }
    });

前端参数:

{username: "321", password: "321"}

后端:

	@RequestMapping(value = "/login")
	public JsonResult<User> UserLogin(String username,String password, HttpSession session) {}

这样可以接收到username和password,

但是,我改成axios后,就接收不到了,

改之后前端:

login() {
    // 设置cookie
    this.isSetCookie();
    let _this = this;
    axios.post('/users/login', {username:_this.username,password:_this.password}).then(function (response) {
        console.log("接收数据:" + response.data.state)
        if (response.data.state == 200) {
            // alert(json.data.previousUrl);
            alert("登录成功!");
            // 跳转回登陆前访问的页面
            if (response.data.data.previousUrl == null || response.data.data.toString().indexOf("favicon.ico") != -1)//避免 http://localhost:8080/favicon.ico
                location.href = "index.html";
            else
                location.href = response.data.data.previousUrl;
        } else {
            alert("登录失败!" + response.data.message);
        }
    })
}

后端只有改成这样才行(或者改成get请求方式也行):

	@RequestMapping(value = "/login",produces = "application/json;charset=UTF-8")
	public JsonResult<User> UserLogin(@RequestBody User user, HttpSession session) {}

不知道为什么,,,迷茫QAQ。

另外这个

@RequestMapping(value = "/XXX",produces = "application/json;charset=UTF-8")

好像能解决很多种json格式的数据获取不到的情况。。


现在好像弄明白了一点

$("#form-login").serialize()

传的不是json格式的,它的参数就是

username:XXX
password:xxx

而axios传递的是json格式的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深|码|洞|悉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值