AJAX的 contentType

本文探讨了在使用Ajax进行前后端数据交互时,如何处理简单及复杂的JSON数据。介绍了application/x-www-form-urlencoded与application/json两种不同的数据类型,以及如何在复杂的JSON数据中使用JSON.stringify进行序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

contentType默认

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

一、 简单的JSON

var p = {name : 'luo', score : '100'};
       $.ajax({
           type: "post",
           url: "/role/contentTypeTest",          
           dataType: 'json',
           data: p,
           error: function(request) {
              layer.alert('添加失败');
           },
           success: function(result) {
              layer.msg('保存成功');
           }
       });

 


二、复杂的 JSON对像

var p = {
           name: 'yuwen',
           score: [
              {'luo' : '100'},
              {'lei' : '98'}
              ]      
       };
       $.ajax({
           type: "post",
           url: "/role/contentTypeTest",          
           dataType: 'json',
           data: p,
           error: function(request) {
              layer.alert('添加失败');
           },
           success: function(result) {
              layer.msg('保存成功');
           }
       });

 

这个复杂对象, application/x-www-form-urlencoded  这种形式是没有办法将复杂的 JSON 组织成键值对形式。你传进去之后可以发送请求,但是服务端收到数据为空, 因为 ajax不知道怎样处理这个数据

HTTP还可以自定义数据类型,于是就定义一种叫 application/json 的类型。我们 ajax 的复杂JSON数据,用 JSON.stringify序列化后然后发送,在服务器端接到然后用 JSON.parse 进行还原就行了。

var p = {
           name: 'yuwen',
           score: [
              {'luo' : '100'},
              {'lei' : '98'}
              ]      
       };
       $.ajax({
           type: "post",
           url: "/role/contentTypeTest",          
           dataType: 'json',
           contentType: 'application/json;charset=UTF-8',
           data: JSON.stringify(p),
           error: function(request) {
              layer.alert('添加失败');
           },
           success: function(result) {
              layer.msg('保存成功');
           }
       });

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值