我的页面上有一些常规的锚标记链接,打开一个弹出窗口,显示我通过网址传递的任何GET数据:
<a href="javascript:window.open('view.php?data=a%20bunch%20of%20data');">View</a>
这些数据中的一些确实很长,而我糟糕的网络主机对可以在网址中传递的GET数据的大小有一个非常小的限制。有没有办法用POST数据代替,而不使用html表单?
答案 0 :(得分:8)
您需要使用表单。但是,您可以将超链接嵌套在表单中:
<form method="post" action="somepage.php" id="form1">
<input type="hidden" name="field1" value="foo" />
<input type="hidden" name="field2" value="bar" />
<a href="somepage.php?field1=foo&field2=bar" onclick="document.getElementById('form1').submit(); return false;">Hyperlink</a>
</form>
答案 1 :(得分:2)
我遇到了同样的困境,并在jQuery中提出了这个解决方案:
<a href="#" id="post-link">Example</a>
<script type="text/javascript">
$(document).ready(function () {
$('a#post-link').click(function() {
$('body').append($('<form/>', {
id: 'form',
method: 'POST',
action: '#'
}));
$('#form').append($('<input/>', {
type: 'hidden',
name: 'field1',
value: 'foo'
}));
$('#form').append($('<input/>', {
type: 'hidden',
name: 'field2',
value: 'bar'
}));
$('#form').submit();
return false;
});
} );
</script>
答案 2 :(得分:1)
你也可以使用XMLHttpRequest
答案 3 :(得分:1)
我在Web开发的长期经验中学到了一件事:如果您遇到托管限制,请将您的网站托管在其他地方。主持限制 - 无论它们是什么 - 从长远来看都不会让你走得太远。托管很便宜,现在可以以非常合理的价格获得具有丰富资源的VPS。
这不值得。