有没有办法在不使用表单的情况下使用POST方法将内容从一个页面传递到另一个页面?
就像在get中一样,你可以用你想要发送的任何东西附加一个?
。你能帮我做点事吗?
我还读了另一个线程,它说使用会话。但是会话是以cookie的形式保存在用户计算机上的,而cookie是不安全的。
那还有别的办法吗?比如在第一页描述一些东西,然后把它传递到第二页。
如果有人能解释一下POST方法是如何工作的,那就太好了。它是如何传递数据的?
你应该使用jQuery。您可以使用它的ajax()
功能。访问下面的链接,阅读它的完整描述和功能列表,以帮助您。
下面是一个示例代码:
<hmtl>
<head>
<script type="http://code.jquery.com/jquery-1.5.1.min.js"></script>
</head>
<body>
<div class="my-fake-form">
<input id="posting-value-1" type="text" />
<a id="submit-form-link" href="#submit">Submit this Div!</a>
</div>
</body>
</html>
Ajax代码:function fake_form_submit ()
{
var post = $('input#posting-value-1').val();
$.ajax({
'url': 'your-php-file.php',
'type': 'POST',
'dataType': 'json',
'data': {post: post},
'success': function(data)
{
if(data.finish)
{
$("div.my-fake-form").attr("innerHTML","Form Submited!");
}
else
{
$("div.my-fake-form").attr("innerHTML","Form Not Submited!");
}
},
beforeSend: function()
{
$(document).ready(function () {
$("div.my-fake-form").attr("innerHTML","Loading....");
});
},
'error': function(data)
{
$(document).ready(function () {
$("div.my-fake-form").attr("innerHTML","ERROR OCCURRED!");
});
}
});
}
$(document).ready(function () {
$('a#submit-form-link').click(function (e) {
e.preventDefault();
fake_form_submit();
});
});
PHP: <?php
$post = $_POST['post'];
//Do Something with the value!
//On Succes return json encode array!
echo json_encode(array("finish" => true));
?>
AJAX文档AJAX函数文档
AJAX教程
就用sessions。
会话在cookie中的存储,如上面的答案所示,仅限于会话的ID。如果您有安全意识,甚至可以将cookie配置为仅作为http cookie发送。
在请求页面上,设置所需的会话键值对。在请求的页面上请求先前设置的会话密钥(首先检查它是否存在)。在你的php.ini中,你可以选择使用会话cookie作为HTTP-only,这样你有更多的安全性。
此外:发布数据可以像使用AJAX或cURL一样简单,如上面所述。
服务器端可以使用cURL扩展实现此功能。教程:我不能100%确定您正在寻找服务器端解决方案。
您可以使用Ajax请求向服务器发送POST请求。
如果你想从浏览器中POST,让它看起来像一个链接,你需要一些javascript:
可以使用submit()函数。例如,请参阅http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml。
但是如果你想让它像GET一样,为什么不使用GET呢?
对于从页面发送POST请求,您可以使用JQuery。post(在这种情况下,您必须使用库)或cURL(在php中)
一种方法是使用JavaScript提交一个不可见的表单。HTML:
<button id="my-button">Go to other page</button>
<form id="my-form" method="POST" action="/other-page" style="display: none">
<input type="hidden" name="param1" value="value1">
<input type="hidden" name="param2" value="value2">
</form>
JavaScript (jQuery): $("#my-button").click(function(e) {
$("#my-form").submit();
});
你也可以使用链接(<a>
标签)代替按钮等。
这将使浏览器转到另一个页面。如果你想保持在当前页面上,只是在后台发布一些数据,使用jQuery或类似库中的ajax函数。