A. HTTP请求中的form data和request payload的区别
区别就是:
当POST请求的请求头里设置Content-Type: application/x-www-form-urlencoded(默认), 参数在请求体以标准的Form Data的形式提交,以&符号拼接,参数格式为key=value&key=value&key=value
当使用AJAX原生POST请求,请求头里设置Content-Type:application/json,请求的参数会显示在Request Payload中,参数格式为JSON格式:{“key”:”value”,”key”:”value”…},这种方式可读性会更好。
拓展资料:
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
B. 在html中用超链接a标签怎么进行post数据传输
一:增加一个form表单
<span ><body> <a href="javascript:doPost("addStudent.action", {"name":"张三"})">提交
</a><script> function doPost(to, p) { // to:提交动作(action),p:参数 var myForm =
document.createElement("form");
myForm.method = "post";
myForm.action = to;
for (var i in p){
var myInput = document.createElement("input");
myInput.setAttribute("name", i); // 为input对象设置name myInput.setAttribute("value", p[i]);
// 为input对象设置value myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm); // 提交后移除创建的form }
</script> </body></span>
二:使用Ajax
<span ><body> <a href="addStudent.action" class="a_post">提交</a><script> $(".a_post").on("click",function(event){
event.preventDefault(); // 使a自带的方法失效,即无法向addStudent.action发出请求 $.ajax({
type: "POST", // 使用post方式 url: "addStudent.action",
contentType:"application/json",
data: JSON.stringify({param1:value1, param2:value2}), // 参数列表,stringify()方法用于将JS对象序列化为json字符串 dataType:"json",
success: function(result){
// 请求成功后的操作 },
error: function(result){
// 请求失败后的操作 }
});
});
</script> </body></span>
(2)htmlpostjson表单扩展阅读:
POST优点:
1、安全性高,但是也不是很高,如果想要高安全性的话就用https传输协议。
2、上传的数据量比GET大得多。“理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在 80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。”
POST缺点:
1、执行效率比GET低,但是现在的计算机都很强大,这些几乎可以忽略不计,所以建议一般都使用POST方式。
2、不可以通过url传递数据,有时候可能会不方便.