1.application/x-www-form-urlencoded序列化:encodeGET方式,会将表单中的数据(键值对)经过urlencode编码后追加到url中。POST方式,会将表单中的数据经过urlencode编码后放在request body 中。
ajax 之POST请求,参数序列化
比如,我们在没有使用jquery的时候,没有$.post来让我们使用,那我们像下面这样直接发送:var params1 = {username: username,passwrod: password};
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var data = xhr.responseText;data = JSON.prase(data);console.log(data);}
}
xhr.open("POST","/url",true);
xhr.setRequestHeader('Content-Type', 'multipart/x-www-form-urlencoded; charset=UTF-8');
xhr.send(params1);
这样发送,后台是接受不到数据的,,因为数据藏在Request的body中,而不是表单中,
所以我们前端就要对数据进行序列化,像jquery一样,$.params 一样对json序列化,这样后台就可以收到了就像这样:var params1 = {username: username,passwrod: password};
function $params(obj) {var str = [];for (var p in obj) {str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));}return str.join("&");
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var data = xhr.responseText;data = JSON.prase(data);console.log(data);}
}
xhr.open("POST","/url",true);
xhr.setRequestHeader('Content-Type', 'multipart/x-www-form-urlencoded; charset=UTF-8');
xhr.send($params(params1));
复制代码

转载于:https://juejin.im/post/5cdbf4316fb9a03240191cd9

post请求中的序列化相关推荐

  1. post传值php取不到数据,post请求中的参数形式和form-data提交数据时取不到的问题...

    @Controller 页面form表单请求时不会丢数据 返回json数据时需要加 注解@ResponseBody 请求格式如下 @ResponseBody public Object login(S ...

  2. http的get请求中的url中添加Object参数

    一直以来http的get请求中,都没有尝试带过复杂对象参数,最新在写grpc时, 使用了框架自动转化rpc请求到http请求,参数定义时没有注意复杂度,定义了个对象嵌套对象的请求参数,所以尝试了下载请 ...

  3. 【2012百度之星/资格赛】H:用户请求中的品牌 [后缀数组]

    时间限制: 1000ms 内存限制: 65536kB 描述 馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇.在比方说"johnsonj ...

  4. Pytorch中的序列化容器-度消失和梯度爆炸-nn.Sequential-nn.BatchNorm1d-nn.Dropout

    Pytorch中的序列化容器-度消失和梯度爆炸-nn.Sequential-nn.BatchNorm1d-nn.Dropout 1. 梯度消失和梯度爆炸 在使用pytorch中的序列化 容器之前,我们 ...

  5. postman简单教程,如何在请求中引用上次请求返回的值

    做接口测试,一定会遇到这种情况,需要拿上次请求的值在本次请求中使用,比如,我们去测试一个东西,要去登录才能做其他的操作,需要拿到登录返回数据中的某些字段,比如,token啊等... 如果发一次请求,就 ...

  6. vue.js与ajax删除,javascript - VueJs和VueResource,从Ajax请求中删除标头字段 - 堆栈内存溢出...

    当实例化Vuejs (2.2.6)和Vue-resource (1.2.1)时 ,我使用以下代码设置标头授权,通过这种方式,我可以将所有请求授权给我的API: Vue.http.headers.com ...

  7. java获取jsp页面参数_jsp页面中获取servlet请求中的参数方法总结

    jsp页面中获取servlet请求中的参数的办法详解 在JAVA WEB应用中,如何获取servlet请求中的参数,并传递给跳转的JSP页面?例如访问http://localhost:8088/bbs ...

  8. java kryo 序列化_java中的序列化方式及dubbo使用kryo序列化

    java中的序列化方式: 1. 自带序列化  ObjectInputSteam. ObjectOutStream等 2. hession2 3. json ,xml等格式 4.kryo 5.FST - ...

  9. SpringMVC无法获取请求中的参数的问题的调查与解决(1)

    SpringMVC无法获取请求中的参数的问题的调查与解决(1) 参考文章: (1)SpringMVC无法获取请求中的参数的问题的调查与解决(1) (2)https://www.cnblogs.com/ ...

最新文章

  1. 域名登陆出现400_域名解析错误怎么办?
  2. android程序包括哪几种文件,apk是什么文件
  3. git怎样用idea拉代码_一款强大的 IDEA 代码生成器,学会用,真香!
  4. 笔记-高项案例题-2016年上-范围管理+沟通管理+进度管理+风险管理
  5. MySQL 高级 循环获取游标
  6. mysql 执行计划extra_mysql执行计划explain type和extra
  7. react 组件添加样式_如何通过4个简单的步骤将CSS模块样式表添加到React组件
  8. 李婷华 201771010113 《面向对象程序设计(java)》 第二周学习总结
  9. Visual Studio Code 1.51 发布
  10. 关于MYSQL ERROR1045 报错的解决办法
  11. AD学习之旅(9)— 新建PCB封装库
  12. VMware Workstation 10.0.7 安装
  13. 最短路径系列【最短路径、哈密顿路等】
  14. Android 面试自我介绍
  15. Ceres Solver (ubuntu 安装)
  16. EditPlus 使用技巧以及快捷键
  17. 代码审计工具简单汇总
  18. 古往今来中国最经典的50句名言
  19. cannot import name ‘six报错
  20. 漫威《黑豹2:瓦坎达万岁》经历坎坷,近期终于恢复制作

热门文章

  1. CentOS: 将虚拟机迁移到 Azure (以阿里云为例)
  2. JMeter打开脚本报错处理方法
  3. oracle--with as
  4. sed及awk显示指定行内容
  5. putty或xshell上用vi/vim小键盘无法使用的解决方法
  6. [LeetCode系列]最大连续子列递归求解分析
  7. 基于python的一个运维自动化的项目(进度更新)【已开源】
  8. 201621123075作业12-流与文件
  9. 让 VAGRANT 启动并运行起来
  10. Node webkit启动最大化窗口