Php 在重定向之前发布变量?

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;

我目前正在建立一个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重写引擎重定向内容,所以我不能使用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();
});
});