在HTML中,a標簽的提交默認是get方式提交的,如果在請求鏈接的參數中帶有中文就會出現亂碼問題,除了在后台程序中轉碼外,這里介紹兩種簡單的方法,可以在客戶端讓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>