Как перенаправить из функции php, чтобы установить, cookie, запускается с помощью ajax? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь установить cookie на моей веб-странице. После того, как файл cookie установлен, я хотел бы перенаправить его на страницу, когда он ничего не делает, и подождать, пока пользователь обновит страницу, чтобы актуализировать файл cookie.

Я использую php jQuery 3.4 для этого. Я пытался обновить страницу после функции в JQuery, но, похоже, она не сработала. Я пытался использовать header('Location: /index.php') после набора файлов cookie, но он тоже не работал. Угадайте, потому что cookie установлен в HTTP-запросе или из header(Content-Type :application/json)

Вот моя функция JavaScript

//get value from a search bar
var option = $(".search-text").val();
        //use ajax to sent it to my php file
        jQuery.ajax({
            type: "POST",
            url: 'script_php/cookie.php',
            dataType: 'json',
            data:{functionname: 'cookie', arguments: option},

            success: function (obj, textstatus){
                if( !('error' in obj) ) {
                  yourVariable = obj.result;
              }
              else {
                  console.log(obj.error);
              }
            }
        });

Вот php запущен

<?php
        //get the infos from the js file
    header('Content-Type: application/json');

    $Result = array();

        //stock them inside an array
    $Result['succes'] = cookie($_POST['arguments']);



    function cookie($name){
        setcookie("user", $name, time() + (86400 * 365.25), "/");
                header('Location: /index.php');
    }

    $Result = array();

?>

Я бы хотел, чтобы файл cookie был установлен и затем возвращал страницу index.php

Фактическим выводом является установленный файл cookie, но страница останавливается

1 Ответ

0 голосов
/ 31 мая 2019

У меня возникли проблемы с пониманием того, что вы пытаетесь сделать, но я думаю, что вижу несколько проблем.

В вашем фрагменте PHP вы перезаписываете $ Result пустым массивом.Не уверен, что вы хотите это сделать.

Вы определяете функцию cookie($name), но вы нигде не вызываете функцию, поэтому она не выполняется ..

Ваш PHP-скрипт, если онзапускается вообще, не выводит никаких данных клиенту, кроме заголовка http.

Как отмечено в комментарии выше, если вы хотите, чтобы браузер перешел куда-то еще, вы можете сделать это клиентом.сторона, и в этом случае я думаю, что вы должны.Так что в случае успеха, т.е. в вашем обратном вызове:

document.location = "/index.php"

Если вы еще не используете инструмент отладки, такой как консоль Firefox, вам следует.Затем вы сможете увидеть, что происходит в ваших xhr запросах и ответах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...