在使用 koa2 的中间件 koa-bodyparser 解析客户端发来的 json 字符串时,发现解析异常,分析后发现,这锅 koa 不背,是发送 post 请求的问题。

【发送表单】

$.ajax({type: "post",url: '/dosomething',data: {'a':'A', 'b':1, 'c': true},success: function (data) {// TODO},error: function () {// TODO}
});

此时,http 请求头里面

Content-Type: application/x-www-form-urlencoded

http 请求的 body,

a=A&b=1&c=true

这种情况下,服务端通常会把所有参数的值解析为字符串。

【发送 json 字符串】

$.ajax({type: "post",url: '/dosomething',data: JSON.stringify({'a':'A', 'b':1, 'c': true}),contentType: 'application/json',    // 这句很重要success: function (data) {// TODO},error: function () {// TODO}
});

此时,http 请求头里面

Content-Type: application/json

http 请求的 body,

{"a":"A","b":1,"c":true}

这种情况下,服务端可以分别解析得到字符串、数字、布尔类型的参数。

*** walker ***

转载于:https://blog.51cto.com/walkerqt/2330741

ajax post 表单和 json 字符串相关推荐

  1. js form表单转json字符串,json数组转json字符串出现多余的双引号问题解决

    功能介绍         页面展示的是一个用户的基本信息,和该用户对应的几台车辆的信息,车辆的字段属性都一样.然后可以编辑这些信息,再保存到后台.那么就需要考虑将车辆信息转换为json数组类型的字符串 ...

  2. html ajax提交表单实例,Ajax提交表单并接收json实例代码

    需求: 实现点击按钮后,数据以表单形式提交至服务器,并接收来自服务器的返回数据.过程中页面不刷新. html代码 xingming: nianling: ajax提交 js代码 function my ...

  3. ajax合并表单,ajax。表单

    JQuery读书笔记--JQuery-Form中的ajaxForm和ajaxSubmit的区别 JQuery中的ajaxForm和ajaxSubmit使用差不多功能也差不多.很容易误解. 按照作者的解 ...

  4. VIEW层AJAX提交表单到Controller的实体(AJAX传递序列化的输入元素)

    在MVC环境中,AJAX方式添加一个对象,这个对象在Models中是一个视图模型,在前台显示时是这样的代码: <%using (Html.BeginForm())       { %>   ...

  5. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  6. ajax提交表单序列化(serialize())数据

    知识点: $("#form").serialize();将表单数据序列化为标准URL编码文本字符串(key1=value1&key2=value2-). 以下用一个例子来演 ...

  7. AJAX 提交表单以及文件上传

    本文转自:https://www.cnblogs.com/zhuxiaojie/p/4783939.html#autoid-0-0-0 作者:朱小杰 前言 使用ajax请求数据,很多人都会,比如说: ...

  8. JQuery ajax提交表单及表单验证

    JQuery ajax提交表单及表单验证 博客分类: jsp/html/javascript/ajax/development Kit 开源项目 注:经过验证,formValidator只适合一个页面 ...

  9. Form表单序列化Json插件-jquery.serializejson.min.js

    Form表单参数序列化成Json对象: 1. 使用serializeJsonObject 2. jquery.serializejson.min.js 1. 使用serializeJsonObject ...

最新文章

  1. 修改Windows的cmd和PowerShell 的字体
  2. flaming pear flood中文版
  3. Java IO(二)——RandomAccessFile
  4. 2.数据结构笔记学习--线性表基本操作
  5. 特殊构造(非捕获总结)
  6. 重装系统 linux启动windows系统文件在哪里,Win-Lin双系统重装Windows找回Linux启动
  7. Java简单方法批量修改Windows文件夹下的文件名(简单IO使用)
  8. jquery给div赋值
  9. 不被大神Hinton认同,否定现有同行成果,谷歌这篇烧脑研究最终拿下ICML2019最佳论文...
  10. Mysql指定编码导入导出数据
  11. 对 Java 意义重大的 7 个性能指标
  12. BZOJ 3676 回文串(回文树)题解
  13. linux 备份到云存储空间,Ubuntu 使用教程- 自动备份Ubuntu 14.04到Box云存储上
  14. EPLAN p8 安装失败解决办法
  15. android 聊天动态表情包,gif表情包制作app下载-GIF表情包 安卓版v1.0-PC6安卓网
  16. Touch 电容式触摸按键 触摸按键PCB设计参考
  17. matlab白噪音wav,为声音文件添加白噪音
  18. 生成特定于查询的类API摘要 (Generating Query-Specific Class API Summaries)
  19. MySQL入门学习之——MySQL Cluster初体验
  20. 北京高级软件需求分析师培训招生!

热门文章

  1. jsp中session 和 cookies区别
  2. 熟悉Python Interpreter解释器
  3. CSS如何设置高度为屏幕高度_(15)让这些“展示”有更好的扩展性——媒体查询 | CSS...
  4. SnapGene mac 5.3.1 中文分子生物学可视化工具及教程
  5. lncrna研究,2021最新相关资料合集
  6. Matlab | 数字信号处理:用FFT做谱分析
  7. 虚拟机登服务器,用虚拟机登录云服务器
  8. 32查运行内存的map文件_Linux进程间通信——内存共享映射
  9. java 优化线程_JAVA线程优化
  10. 第四范式入选CB Insights首届中国金融科技榜单