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傳遞數據,有時候可能會不方便.