AI智能
改变未来

前后端分离时,JQuery使用Post出现400和415错误

目录

  • 后端接口介绍
  • 前端ajax
  • 出现415错误
  • 出现400错误
  • 解决方法

后端接口介绍

采用前后端分离的结构,后端是一个post接口:

@PostMapping(\"/blog/edit\")public Result edit(@Validated @RequestBody Blog blog) {

Blog需要传三个参数:

  • title
  • description
  • content

前端ajax

要传输的数据:

var blogJsonData = {\"title\":\"测试3444\",\"description\":\"描述描述描述333333\",\"content\":\"contents333\"};

出现415错误

使用的是这个代码(曾经没有前后端分离时的某个小项目中用过)

$.post(\"http://localhost:8081/blog/edit\", blogJsonData, function(result){console.dir(result);//在控制台打印结果},\"json\");

但是报错:

网上搜索后判断可能是发送的数据格式不正确,比如需要指定消息请求类型

application/json

出现400错误

于是去W3school中看

ajax()

方法的介绍(本人小白,编程不太熟练),找能够添加消息请求类型的代码。
然后用的是这个:

jQuery.ajax({type: \"post\",dataType: \"json\",url: \"http://localhost:8081/blog/edit\",contentType: \"application/json;charset=UTF-8\",//指定消息请求类型data: blogJsonData,success: function (result) {console.dir(result);//在控制台打印结果}});

但是报错:

解决方法

再次搜索400问题的解决方法,判断可能是传输数据的问题:

  • 上面传的是json对象,需要传输json对象的字符串形式

于是在jQuery.ajax前面添加了一句:

blogJsonData = JSON.stringify(blogJsonData)

,得到:

		var blogJsonData = {\"title\":\"测试3444\",\"description\":\"描述描述描述333333\",\"content\":\"contents333\"};blogJsonData = JSON.stringify(blogJsonData);//需要变成字符串格式jQuery.ajax({type: \"post\",dataType: \"json\",url: \"http://localhost:8081/blog/edit\",contentType: \"application/json;charset=UTF-8\",//指定消息请求类型data: blogJsonData,success: function (result) {console.dir(result);//在控制台打印结果}});

最终成功访问到后端的数据。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 前后端分离时,JQuery使用Post出现400和415错误