Ajax如何提交json数据到后端服务器,关键一步是需要如下设置:contentType: 'application/json;charset=UTF-8'。需要注意的是data属性一定要把JSON对象转换成JSON字符串传递给服务器端。
具体聊一下contentType,contentType 主要是设置前端数据发送给服务器的格式,服务端根据前端contentType设置来解析前端的数据。jQuery的Ajax中,contentType默认值是:'application/x-www-form-urlencoded'。
Content-Type几个常见的类型如下:
1、application/x-www-form-urlencoded
浏览器的原生form表单,如果不设置enctype属性,那么最终以application/x-www-form-urlencoded方式提交数据。该种方式提交的数据放在body里面。
2、multipart/form-data
这种方式也是一种常见的POST提交方式,通常表单上传文件时使用该方式。使用表单上传文件时,必须让form的enctype等于这个值。
3、application/json
application/json作为响应头,现在越来越多的人使用它,告诉服务器消息主体是序列化后的JSON字符串。它可以更方便的的提交更复杂的结构化数据。
4、text/xml
这种方式主要用来提交XML格式的数据,JSON和XML有其不可代替的领域。
Ajax提交JSON数据到后端服务器代码示例如下:
const data = {};
$.ajax({
url: 'url',
data: JSON.stringify(data),
type: 'POST',
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
success: function (response) {
}
})