在html中用超链接a标签怎么进行post数据传输
<a style="text-decoration:none;" href="http://bugzilla.spreadtrum.com/bugzilla/buglist.cgi?quicksearch=%20'+new_assignee_assigned_ids_link+'">'+new_assignee_assigned+'</a>
路径是正确的,也可以连接。
但是当new_assignee_assigned_ids_link带的数据太长了就连接不上来。(有数千字符,上万都有可能)
所以我想是不是可以用post请求?
我直接在超链接中加method=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>
扩展资料:
POST优点:
1、安全性高,但是也不是很高,如果想要高安全性的话就用https传输协议。
2、上传的数据量比GET大得多。“理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在 80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。”
POST缺点:
1、执行效率比GET低,但是现在的计算机都很强大,这些几乎可以忽略不计,所以建议一般都使用POST方式。
2、不可以通过url传递数据,有时候可能会不方便.
可以使用echopos js 实现a标签post请求数据传输的
<body>
<a class="echo-post echo-confirm" action-url="后台方法" redirect-url="后台完成操作后需要跳转的地址" confirm-msg="提醒内容">操作</a>
</body>
<script>
$(function () {
$('body').echopost();
})
</script>
echopost js使用说明:http://www.51softs.com/luoyufuli/echopost-ajax-post-mvc-asp-net.html
你用表单FORM,设置表单Method=POST,内设隐藏域,存入要传送的值。a链接的onclick控制表单的提交。
2016-04-29
请问可以直接在这样加嘛?
a没有method这个属性,如果需要post请求可以使用form或者ajax请求
<form action="http://bugzilla.spreadtrum.com/bugzilla/buglist.cgi" method="post">
<input type="text" name="quicksearch" value="new_assignee_assigned_ids_link">
<input type="submit" value="post请求">
</form>
ajax可以用jq,这个就很方便
$.ajax({
url: 'http://bugzilla.spreadtrum.com/bugzilla/buglist.cgi',
type: 'POST',
dataType: 'json',
data: {quicksearch: 'new_assignee_assigned_ids_link'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});