我甚至不确定这是否可行,但我需要通过用户点击的链接将POST数据发送到页面。可以这样做吗?
要明确,我不希望数据返回到当前页面;目标页面应该在浏览器中加载,就像用户提交了表单一样,但我需要在没有表单的情况下发送帖子数据,如果可能的话
答案 0 :(得分:5)
没有表格你是什么意思?表单可以对用户“隐形”吗?如果是这样,您可以执行以下操作:
$("a.post").click(function (e) {
e.preventDefault();
$("<form action='"+this.href+"' method='post'></form>").submit();
});
显然,它可以采用多种不同的方式,但你明白了。
它就像一个表格,请求中的POST参数完好无损,以防您在提供该页面时在服务器上使用该信息。
答案 1 :(得分:3)
带有隐藏输入的表单怎么样?只需在提交表单的锚标记上创建一个click事件:
<script type="text/javascript">
$(function () {
$("#postLink").click(function () {
$("#form").submit();
});
});
</script>
<a id="postLink" href="javascript:;;">click to post</a>
<form id="form" action="[postTargetUrl]" method="post">
<input type="hidden" name="postVariable" value="[postValue]" />
</form>
答案 2 :(得分:0)
我只是将数据添加到url,然后目标页面可以提取它:
主页:
<a href="page2.htm?name=Fred">Fred</a>
目标页面(page2.htm)
$(document).ready(function(){
var name = gup("name", window.location.href);
alert(name);
});
/* Returns URL parameter
* url: http://www.somesite.com?name=hello&id=11111
* z = gup('name', window.location.href); // z = hello
* Original code from Netlobo.com (http://www.netlobo.com/url_query_string_javascript.html)
*/
function gup(n,s){
n = n.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");
var p = (new RegExp("[\\?&]"+n+"=([^&#]*)")).exec(s);
return (p===null) ? "" : p[1];
}