Php 在重定向之前发布变量?
我目前正在建立一个CMS。我想在重定向时将页面id或站点id发送到下一个页面。我尝试使用jQuery POST函数执行此操作:Php 在重定向之前发布变量?,php,jquery,redirect,Php,Jquery,Redirect,我目前正在建立一个CMS。我想在重定向时将页面id或站点id发送到下一个页面。我尝试使用jQuery POST函数执行此操作: $(document).ready(function(){ $('.sender').on('click','a',function(){ var url = $(this).attr('href'); var n = url.indexOf('#')+1;
$(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重写引擎重定向内容,所以我不能使用GET
除了会话变量外,我的选项是什么?
我想保证它的安全,所以我不希望有太多的信息可见/可用 要实现这一点,您需要等待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');
}
});
});
});
我不知道你为什么需要,但我认为这可以解决你的问题 如果您需要使用真实的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>
$(文档).ready(函数(){
$('.sender')。在('click','a',函数(事件)上{
event.preventDefault();
var url=$(this.attr('href');
var n=url.indexOf(“#”)+1;
var siteid=url.substr(n,url.length);
$('input[name=“siteid”]).val(siteid);
$(“#重定向表单”).submit();
});
});