我目前正在使用CMS。我想将页面ID或网站ID发送到重定向的下一页。我尝试使用jQuery POST函数:
$(document).ready(function(){
$('.sender').on('click','a',function(){
var url = $(this).attr('href');
var n = url.indexOf('#')+1;
var siteid = url.substr(n,url.length);
$.ajax({
url: 'pages.php',
type: 'POST',
data: { siteid:siteid },
success: function(response){
console.log('check');
},
error: function(){
console.log('error');
}
});
});
});
但是因为请求是在重定向的同时发送的,所以它似乎不起作用。
因为我使用apache rewrite_engine来重定向东西,所以我不能使用GET。
除了session_variables,我的选择是什么? 我想保证它的安全,所以我不希望有太多信息可见/可用!
答案 0 :(得分:0)
要实现此目的,您需要等待AJAX请求在重定向页面之前完成。试试这个:
$(document).ready(function(){
$('.sender').on('click', 'a', function(e){
e.preventDefault(); // stop the default redirect
var url = $(this).attr('href');
var n = url.indexOf('#') + 1;
var siteid = url.substr(n, url.length);
$.ajax({
url: 'pages.php',
type: 'POST',
data: {
siteid: siteid
},
success: function(response){
console.log('check');
window.location.assign(url); // redirect once the AJAX has successfully completed
},
error: function(){
console.log('error');
}
});
});
});
答案 1 :(得分:0)
我不清楚你明白为什么需要,但我认为这可以解决你的问题。
如果您需要使用真实的POST方法传输信息,只需使用method="POST"
创建一个隐藏的表单并在点击事件中填充它。
<script type="text/javascript">
$(document).ready(function(){
$('.sender').on('click','a',function(event){
event.preventDefault();
var url = $(this).attr('href');
var n = url.indexOf('#')+1;
var siteid = url.substr(n,url.length);
$('input[name="siteid"]').val(siteid);
$('#redirectForm').submit();
});
});
</script>
<form id="redirectForm" action="pages.php" method="POST">
<input type="hidden" name="siteid" value=""/>
</form>