Как перенаправить с помощью jquery ajax и php response - PullRequest
1 голос
/ 14 октября 2019

У меня есть следующие ajax и php. Я хочу перенаправить пользователя на другую страницу в зависимости от результата, который я вывел с помощью php-скрипта. Php успешно возвращает json в браузер, но я почему-то не могу вернуть URL-адрес ответа в js ajax для перенаправления. Он всегда перенаправляет меня на / неопределенный. Что не так с моим кодом?

jQuery.ajax({
    type: "POST",
    url: "../custom_scripts/anmeldung_zurueckziehen.php",
    data: { anmeldung_id: anmeldung_id },
    success: function(response){    
    //alert (response.redirect);
    if (response.redirect) {
        window.location.href = response.redirect;
    }else {
        // Process the expected results...
    }
    }
})

Это php.

$arr = array ('redirect'=>true,'redirect_url'=>'https://mypage.de/no- 
access/');
echo json_encode($arr);

Ответы [ 3 ]

1 голос
/ 14 октября 2019

Желаю, чтобы это помогло:

jQuery.ajax({
    type: "POST",
    url: "../custom_scripts/anmeldung_zurueckziehen.php",
    data: { anmeldung_id: anmeldung_id },
    success: function(response){    
    response = JSON.parse(response);
    if (response.redirect) {
        window.location.href = response.redirect_url;
    }else {
        // Process the expected results...
    }
    }
})
0 голосов
/ 14 октября 2019

Два способа сделать это

Первый способ - либо использовать заголовки JSON в Php, как показано ниже

header('Content-Type: application/json');

Выше будет возвращаться строка JSON с заголовками json иjquery автоматически проанализирует его для вас, и у вашей функции обратного вызова будет соответствующий объект.

Второй способ - в javascript используйте JSON.parse, как показано ниже

 JSON.parse(response); 

вышебудет в основном анализировать вашу строку json в объект Javascript

Убедитесь, что вы не анализируете, когда вы установили заголовки JSON из бэкэнда.

0 голосов
/ 14 октября 2019

Вам не хватает dataType свойства для ajax для декодирования ответа:

jQuery.ajax({
    type: "POST",
    dataType: "json",
    url: "../custom_scripts/anmeldung_zurueckziehen.php",
    data: { anmeldung_id: anmeldung_id },
    success: function(response) {    
        //console.log(response.redirect);
        if (response.redirect) {
            window.location.href = response.redirect_url;
        } else {
        // Process the expected results...
        }
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...