2015-10-15 3 views
0

В настоящее время я строил CMS. Я хочу отправить идентификатор страницы или идентификатор сайта на следующую страницу при перенаправлении. Я пытался сделать это с помощью функции 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

Для этого вам нужно дождаться завершения запроса 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'); 
      } 
     }); 
    }); 
}); 
0

Я не уверен, что четко понимаю, зачем вам нужно, но я думаю, что это может ответить на вашу проблему.

Если вам нужно передать информацию, используя реальный метод POST, просто создайте скрытую форму с помощью method="POST" и заполните ее на событие click.

<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> 
Смежные вопросы