解決ajax請求(SpringMVC后台)響應415/400/405錯誤


解決ajax請求(SpringMVC后台)響應415/400/405錯誤

后端代碼

  • bean

    
     public class user {
    
         private String username;
    
         private String password;
    
         private Integer age;
    
     //省略get set
    
    }
    
  • SpringMVC

    
       	@RequestMapping(value = "testMethod",method = RequestMethod.POST)
              
         @ResponseBody
        
        public String getUser(@RequestBody user u){
        
            System.out.println(u);
    
                return "success";
        }
    
    

415錯誤

沒有設置 contentType: "application/json"

  • ajax

    $.ajax({
    
        url:baseurl+"test/testMethod",
       
         type:"POST",
    
        data:JSON.stringify({
    
            "username":"user666",
    
            "password":"a123456",
    
            "age":19
    
        }),
        success:function (res) {
    
            console.log(res);
    
        },
    
            error:function () {
    
            console.log("網絡錯誤");
    
            }
    
        })
    
  • 原因

    
    //沒有設置contentType: "application/json",
    
    //更正之后
    
    $.ajax({
    
        url:baseurl+"test/testMethod",
    
        type:"POST",
    
    	contentType: "application/json",
    
        data:JSON.stringify({
    
            "username":"user666",
    
            "password":"a123456",
    
            "age":19
    
        }),
    
        success:function (res) {
    
            console.log(res);
    
        },
    
        error:function () {
    
            console.log("網絡錯誤");
    
        }
    
    })
    
    

400錯誤

沒有對傳輸的內容進行格式化 JSON.stringify(jsonobj)

  • ajax

    
    $.ajax({
    
        url:baseurl+"test/testMethod",
    
        type:"POST",
    
    	contentType: "application/json",
    
        data:{
    
            "username":"user666",
    
            "password":"a123456",
    
            "age":19
    
        },
    
        success:function (res) {
    
            console.log(res);
    
        },
    
        error:function () {
    
            console.log("網絡錯誤");
    
        }
    
    })
    
  • 原因

    
    //沒有對傳輸的數據進行轉換為JSON字符串JSON.stringify(jsonobj)
    
    //更正之后
    $.ajax({
    
        url:baseurl+"test/testMethod",
    
        type:"POST",
    
    	contentType: "application/json",
    
        data:JSON.stringify({
    
            "username":"user666",
    
            "password":"a123456",
    
            "age":19
    
        }),
    
        success:function (res) {
    
            console.log(res);
    
        },
    
        error:function () {
    
            console.log("網絡錯誤");
    
        }
    
    })
    

405錯誤

通常是type 請求類型設置與后端所限制的請求不一致

  • ajax

    
    $.ajax({
    
        url:baseurl+"test/testMethod",
    
        type:"GET",
    
    	contentType: "application/json",
    
        data:JSON.stringify({
    
            "username":"user666",
    
            "password":"a123456",
    
            "age":19
    
        }),
    
        success:function (res) {
    
            console.log(res);
    
        },
    
        error:function () {
            console.log("網絡錯誤");
    
        }
    
        })
    
    
  • 原因

    
    //請求類型與后端設置的不一致 正確應為 type:"POST"
    
    //更正之后
    
    $.ajax({
    
        url:baseurl+"test/testMethod",
    
        type:"POST",
    
    	contentType: "application/json",
    
        data:JSON.stringify({
    
            "username":"user666",
    
            "password":"a123456",
    
            "age":19
    
        }),
    
        success:function (res) {
    
            console.log(res);
    
        },
    
        error:function () {
    
            console.log("網絡錯誤");
    
        }
    
    })
    
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM