有没有办法在不使用表单的情况下使用POST方法将内容从一个页面传递到另一个页面。
就像在get中一样,您只需附加一个?
即可发送任何内容。你能为帖子做点什么吗?
我还读了另一个说使用会话的帖子。但是会话作为cookie保存在用户计算机上,并且cookie是不安全的。
那么还有其他办法吗?就像描述第一页中的内容然后将其传递给第二页一样。
如果有人能解释我POST方法是如何工作的话会很好吗?它是如何传递数据的?
答案 0 :(得分:8)
你应该使用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 documentation
AJAX function documentation
AJAX tutorial
答案 1 :(得分:5)
只需使用会话。
Cookie中会话的存储由上述答案指示,仅限于会话ID。如果您有安全意识,Cookies甚至可以配置为仅作为HTTP-cookies发送。
在请求页面上,设置所需的会话键值对。在请求的页面上请求先前设置的会话密钥(检查它是否存在)。在您的php.ini中,您可以选择将会话cookie用作仅限HTTP,这样您就可以获得更高的安全性。
此外:发布数据可以像使用AJAX或cURL一样简单,如上所述。
答案 2 :(得分:1)
答案 3 :(得分:1)
您可以使用Ajax请求将POST请求发送到服务器。或服务器端的cURL。
答案 4 :(得分:0)
如果你想从浏览器发帖并使它看起来像一个链接,你需要一些JavaScript:
你可以使用submit()函数。例如,请参阅http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml。
但是如果你想让它像GET一样,为什么不使用GET?
答案 5 :(得分:0)
对于来自页面的POST中的发送请求,您可以使用JQuery.post(在这种情况下,您必须使用库)或cURL(在php中)
答案 6 :(得分:0)
一种方法是使用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函数。