ContentType后台的接收方式

基本代码(springboot+html+vue)

前端请求后台的login:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试contenttype</title>
   <link type="text/css" href="/test.css" rel="stylesheet"></link>
    <style>
        /*body{*/
        /*    background-color: #2b542c;*/
        /*}*/
    </style>
</head>
<body>
<div id="app">
    <input type="text" name="username"  placeholder="请输入用户名" v-model="formData.username"/>
    <button @click='submit'>按钮</button>
</div>
<script src="/js/jquery.min.js"></script>
<script src="/js/vue.js"></script>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            formData:{
                username:'你好啊,vue',
            },
        },
        methods:{
            submit() {
                alert(this.formData.username);
                var data = JSON.stringify(this.formData);
                console.log(data);
                $.ajax({
                    url: '/login',
                    data: data,
                    type: 'POST',
                    contentType: 'application/json;charset=UTF-8',//后台用@requestBody获取数据并用对象接收
                    // contentType:'',
                    dataType: 'JSON',
                    // cache: false,
                    processData: false,// 告诉jQuery不要去处理发送的数据
                    // contentType: false,// 告诉jQuery不要去设置Content-Type请求头
                    success: function (data) {
                        console.log('返回值'+data)
                    },
                    error: function (data) {
                        console.log('请求失败');
                    }
                })
            }
        }

    });
</script>
</body>
</html>

后台controller

package com.lizhi.login.controller;

import com.lizhi.login.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
//@ResponseBody
public class LoginController {

    @RequestMapping({"","/"})
    String welcome(){
        return "test";
    }
    @RequestMapping(value = "/login")
    public void login(@RequestBody User user){

        System.out.println("用户名:"+user);
//        System.out.println("密码:"+psd);
        System.out.println("请求成功");
    }
}

情景一

前端:contentType: 'application/json;charset=UTF-8',

 

 

 情景二

前端:contentType:'application/x-www-form-urlencoded',//模仿表单提交的形式

原文地址:https://www.cnblogs.com/19322li/p/12284148.html