由于项目中需要向后台传复杂的json数据处理完然后跳转,大家的做法是用ajax提交数据然后在用location.href跳转,但是这样做需要写两个controller,正好今天百度看了可以设置form的enctype属性为'application/json'就可以发送json数据,下面是网上的事例:

// 生成的Json数据是

{

"pet": [

{

"species": "Dahut"

, "name": "Hypatia"

}

, {

"species": "Felis Stultus"

, "name": "Billie"

}

]

}

下面是我自己的代码实现将json转换为隐藏表单form表单提交:

function postForm(url, params) {

//使用递归遍历

function iter(inputName, obj, resMap) {

for (key in obj) {

if (obj[key] && typeof obj[key] === 'object') {

if (inputName) {

iter(inputName + "[" + key + "]", obj[key], resMap);

} else {

iter(key, obj[key], resMap);

}

} else {

resMap[inputName + "[" + key + "]"] = obj[key];

}

}

}

var temp = document.createElement("form");

temp.action = url;

temp.method = "post";

temp.style.display = "none";

temp.enctype = "application/json";

var resList = {};

iter('',params,resList);//遍历数据结构

for (key in resList) {

var hideInput = document.createElement("input");

hideInput.type = "hidden";

hideInput.name = key;

hideInput.value = resList[key];

temp.appendChild(hideInput);

}

document.body.appendChild(temp);

temp.submit();

}

测试数据

var dd = {

user:{

name:'小明',

id:34

},

project:[{

yuwen:{name:'语文',scre:444}},{shuxue:{name:'数学',scre:33}}

]

};

postForm('test',dd)

//生成的表单

生成的数据跟网上的一样,可以提交的时候浏览器显示

Content-Type:application/x-www-form-urlencoded,并且后台也没有取到理想的json数据

这是后台数据

有哪位大神知道怎么解决吗?求教

ajax enctype设置,form设置enctype属性为'application/json'不起作用相关推荐

  1. $.ajax的type属性,$.ajax中contentType属性为“application/json”和“application/x-www-form-urlencoded”的区别...

    说明: application/json和application/x-www-form-urlencoded都是表单数据发送时的编码类型. contentType: 发送信息至服务器时内容编码类型,简 ...

  2. $.ajax中contentType属性为“application/json”和“application/x-www-form-urlencoded”的区别...

    说明: application/json和application/x-www-form-urlencoded都是表单数据发送时的编码类型. contentType: 发送信息至服务器时内容编码类型,简 ...

  3. html form 无法指定 content-type 为 application/json

    form  enctype属性指定为application/json,最后还是会强制的设置为"Content-Type:application/x-www-form-urlencoded&q ...

  4. ajax_contenttype,$.ajax中contentType: “application/json” 的用法详解

    具体内容如下所示: $.ajax({ type: httpmethod, cache:false, async:false, contenttype: "application/json; ...

  5. Flex设置form表单一些属性设置

    设置form表单label左对齐 style: mx|FormItem {labelStyleName: customTextAlignLabel;}.customTextAlignLabel {te ...

  6. form 中Enctype=multipart/form-data 的作用

    form 中Enctype=multipart/form-data 的作用 ENCTYPE="multipart/form-data"用于表单里有图片上传. <form na ...

  7. 当FORM的ENCTYPE=quot;multipart/form-dataquot; 时request.getParameter()获取不到

    当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值. 解决方法: 提交普通表单时,在提交前: $(&q ...

  8. Tabcontrol动态添加TabPage(获取或设置当前选项卡及其属性)

    http://blog.csdn.net/xiongxyt2/article/details/6920575 •MultiLine 属性用true 或false来确定是否可以多行显示  •Appear ...

  9. form的enctype和action

    form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www ...

最新文章

  1. 拉杰尔安卓服务器注册上限,拉结尔多开养小号刷副本 用多多云手机离线能升级...
  2. 再述Spring AOP 应用场景
  3. 第六十二节,html分组元素
  4. 多线程 简单的实现案例
  5. [ckeditor系列]CKeditor自定义上传图片功能
  6. centos7执行 wget命令: command not found的两种解决方法
  7. *C#(WPF)--矩阵拖动和矩阵动画(拖动展开,不足动画效果)
  8. .ajax 上传图片,ajax图片上传并预览
  9. 《数据结构题集》2.12
  10. oracle客户端sqlplus镜像(可通过ssh客户端远程连接操作sqlplus命令)
  11. 学习笔记—前端移动端开发知识点总结
  12. spec之install
  13. 苹果待处理订单要多久_iPhone12被电商平台下来,原来苹果又要玩“套路”
  14. NXP i.MX 8处理器再扩军!全新i.MX 8X处理器剑指工业与汽车应用
  15. C# 连接数据库,查询数据
  16. Altium designer中蛇形线走法和操作说明
  17. 牛津花卉数据集(Oxford 17/Oxford 102)官网
  18. 你绝对没见过的船新版本,利用Python代码制作过年春联。
  19. 元件封装知识(转载)
  20. java中构造方法只能有一个_对Java中类的构造方法描述正确的是()A.如果在类中没有定义,Java就提供一个默认的构造方法B.只能...

热门文章

  1. iOS 高德地图怎么在屏幕内显示所有的Marker?
  2. 详细教你两台电脑之间传文件
  3. Java常用注解以及使用场景示例
  4. React Native不同设备分辨率适配和设计稿尺寸单位px的适配
  5. 4.gcc和arm-linux-gcc
  6. IDEA(jetbrain通用)优雅级使用教程
  7. 【转载】eMule电驴使用从入门到精通(5)-------emule菜单说明
  8. 10款优秀的在线格式转换工具
  9. java.lang.SecurityException: Prohibited package name: java.com.xx异常抛出
  10. [转载]泰森多边形(泰森图)