【HTML】怎样使用a标签以post方式提交

   在HTML中,a标签的提交默认是get方式提交的,如果在请求链接的参数中带有中文就会出现乱码问题,除了在后台程序中转码外,这里介绍两种简单的方法,可以在客户端让a标签以post方式提交。

   一:增加一个form表单

<span style="font-family:SimSun;font-size:18px;"><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 style="font-family:SimSun;font-size:18px;"><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>




Author:顾故

Sign:别输给曾经的自己

你可能感兴趣的:(JavaScript,html)