2010-09-30 4 views
0


Я использую вызов ajax для запуска перенаправления php с использованием заголовков. Согласно инструментам разработчика Chrome, содержимое страницы загружается (то есть: находится в списке ресурсов), но страница никогда не перенаправляется.php header redirect не работает

У меня нет кодов ошибок. Вот php:

<?php 
ini_set('display_errors', false); 
if (!isset($_SESSION)) { 
    if($_POST['email']){ 
    ...several calls to external db... 
    if(strlen($response->supporter->item->Email)) 
     //user is a member 
     header('Location: http://www.example.com/page-one/'); 
    else 
     header('Location: http://another-site.com/'); 
    } 
} 
?> 

Почти точно такой же код работает в другой части сайта. Любые идеи, почему это вытаскивает правильный контент, но не загружают его на страницу?

вызов Ajax является:

$.post("http://www.our_site.org/is_member.php", { email: email }); 
+0

Пожалуйста, покажите на вызов Ajax –

+8

держись, ты не извлекаете это с помощью Ajax и ожидаете, что заголовок («местоположение») повлияет на родительскую страницу? Потому что это никогда не сработает. –

+0

Ах, ха! Да, так как я могу выполнить то, что я пытаюсь сделать? – danwoods

ответ

0

Попробуйте это:

<?php 
ini_set('display_errors', false); 
if (!isset($_SESSION)) { 
    if($_POST['email']){ 
    ...several calls to external db... 
    if(strlen($response->supporter->item->Email)) 
     //user is a member 
     echo ('Location: http://www.example.com/page-one/'); 
    else 
     echo ('Location: http://another-site.com/'); 
    } 
} 

?> 

И внутри ваших JS сделать:

$.ajax({ 
    type: 'POST', 
    url: "http://www.our_site.org/is_member.php", 
    data: {email: email }, 
    success: function(output){ window.location = output; } 
    dataType: dataType 
});