post请求中的序列化
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请求中的序列化相关推荐
- post传值php取不到数据,post请求中的参数形式和form-data提交数据时取不到的问题...
@Controller 页面form表单请求时不会丢数据 返回json数据时需要加 注解@ResponseBody 请求格式如下 @ResponseBody public Object login(S ...
- http的get请求中的url中添加Object参数
一直以来http的get请求中,都没有尝试带过复杂对象参数,最新在写grpc时, 使用了框架自动转化rpc请求到http请求,参数定义时没有注意复杂度,定义了个对象嵌套对象的请求参数,所以尝试了下载请 ...
- 【2012百度之星/资格赛】H:用户请求中的品牌 [后缀数组]
时间限制: 1000ms 内存限制: 65536kB 描述 馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇.在比方说"johnsonj ...
- Pytorch中的序列化容器-度消失和梯度爆炸-nn.Sequential-nn.BatchNorm1d-nn.Dropout
Pytorch中的序列化容器-度消失和梯度爆炸-nn.Sequential-nn.BatchNorm1d-nn.Dropout 1. 梯度消失和梯度爆炸 在使用pytorch中的序列化 容器之前,我们 ...
- postman简单教程,如何在请求中引用上次请求返回的值
做接口测试,一定会遇到这种情况,需要拿上次请求的值在本次请求中使用,比如,我们去测试一个东西,要去登录才能做其他的操作,需要拿到登录返回数据中的某些字段,比如,token啊等... 如果发一次请求,就 ...
- vue.js与ajax删除,javascript - VueJs和VueResource,从Ajax请求中删除标头字段 - 堆栈内存溢出...
当实例化Vuejs (2.2.6)和Vue-resource (1.2.1)时 ,我使用以下代码设置标头授权,通过这种方式,我可以将所有请求授权给我的API: Vue.http.headers.com ...
- java获取jsp页面参数_jsp页面中获取servlet请求中的参数方法总结
jsp页面中获取servlet请求中的参数的办法详解 在JAVA WEB应用中,如何获取servlet请求中的参数,并传递给跳转的JSP页面?例如访问http://localhost:8088/bbs ...
- java kryo 序列化_java中的序列化方式及dubbo使用kryo序列化
java中的序列化方式: 1. 自带序列化 ObjectInputSteam. ObjectOutStream等 2. hession2 3. json ,xml等格式 4.kryo 5.FST - ...
- SpringMVC无法获取请求中的参数的问题的调查与解决(1)
SpringMVC无法获取请求中的参数的问题的调查与解决(1) 参考文章: (1)SpringMVC无法获取请求中的参数的问题的调查与解决(1) (2)https://www.cnblogs.com/ ...
最新文章
- 域名登陆出现400_域名解析错误怎么办?
- android程序包括哪几种文件,apk是什么文件
- git怎样用idea拉代码_一款强大的 IDEA 代码生成器,学会用,真香!
- 笔记-高项案例题-2016年上-范围管理+沟通管理+进度管理+风险管理
- MySQL 高级 循环获取游标
- mysql 执行计划extra_mysql执行计划explain type和extra
- react 组件添加样式_如何通过4个简单的步骤将CSS模块样式表添加到React组件
- 李婷华 201771010113 《面向对象程序设计(java)》 第二周学习总结
- Visual Studio Code 1.51 发布
- 关于MYSQL ERROR1045 报错的解决办法
- AD学习之旅(9)— 新建PCB封装库
- VMware Workstation 10.0.7 安装
- 最短路径系列【最短路径、哈密顿路等】
- Android 面试自我介绍
- Ceres Solver (ubuntu 安装)
- EditPlus 使用技巧以及快捷键
- 代码审计工具简单汇总
- 古往今来中国最经典的50句名言
- cannot import name ‘six报错
- 漫威《黑豹2:瓦坎达万岁》经历坎坷,近期终于恢复制作