Сообщение Ajax на php. Сохраните файл cookie и отправьте его обратно в javascript

Я отправляю данные на php через ajax POST. Я хочу сохранить его в php-файле cookie, а затем получить его в javascript через запрос GET ajax. В PHP моя функция проверки файлов cookie возвращает «cookie ____ не установлен». Что я делаю неправильно, что заставляет меня не хранить мой файл cookie, а затем извлекать его.

AJAX POST

function(config) { var config_copy = JSON.parse(JSON.stringify(config)); //post cookie $.ajax({ url: "php/pivot_cookie.php", type: "POST", data: config_copy, success: function(){ alert("Cookie: success") }, error: function(data){alert(data);} }); } 

PHP

 $cookie_name = "pivot_config"; $cookie_value = $_POST['config_copy']; setcookie($cookie_name, $cookie_value, "/"); //cookie check function if(!isset($_COOKIE[$cookie_name])) { echo "Cookie named '" . $cookie_name . "' is not set!"; } else { echo "Cookie '" . $cookie_name . "' is set!<br>"; echo "Value is: " . $_COOKIE[$cookie_name]; } 

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

  $(document).ready(function(){ $.ajax({ url: "php/pivot_cookie.php", type: "GET", data: (cookie - I dont know how to get it), success: function(){ alert("Cookie Retreival: success") }, error: function(data){alert("Cookie Retrieval: failure");} }); } 

Related of "Сообщение Ajax на php. Сохраните файл cookie и отправьте его обратно в javascript"

Вы не устанавливаете правильный срок действия своего файла cookie. Пытаться:

 setcookie($cookie_name, $cookie_value, time() + 3600, "/"); // expire in 1 hour 

см. официальные документы для setcookie

Помимо того, что не задает PHP setcookie() то, что он хочет для третьего параметра, вам также необходимо установить один параметр для $.ajax() .success() .

После этого вы можете сделать .success(data) обрабатывать data вы хотите.

Обратите внимание на данные JSON, которые я передаю вместо свойства data в файле ajax-post.html .

 data: {"config_copy": config_copy} 

В зависимости от данных, которые вы обрабатываете, вы можете просто использовать Javascript для извлечения данных cookie.

Попробуйте ниже в консоли вашего веб-браузера? После того, как вы установили файл cookie (если вы установили только один файл cookie pivot_config )

 escape( document.cookie.split('=').pop() ).replace('+', ' ') 

Также отметить, что файлы cookie ограничены объемом данных, которые они могут хранить.

pivot_cookie.php

 $cookie_name = "pivot_config"; if ( isset( $_POST['config_copy'])) { $cookie_value = $_POST['config_copy']; setcookie($cookie_name, $cookie_value, time()+3600, "/"); //cookie check function if(!isset($_COOKIE[$cookie_name])) { echo "Cookie named '" . $cookie_name . "' is not set!"; } else { echo "Cookie '" . $cookie_name . "' is set!<br>"; echo "Value is: " . $_COOKIE[$cookie_name]; } } else { if ( isset( $_COOKIE[$cookie_name] ) ) { echo $_COOKIE[$cookie_name]; } } 

Ajax-post.html

 <html> <head> <title>getting using ajax</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <script> function x (config) { var config_copy = JSON.parse(JSON.stringify(config)); //post cookie $.ajax({ url: "pivot_cookie.php", type: "POST", data: {"config_copy": config_copy}, success: function(data,b,c){ alert("Cookie Retreival: success"); $("body").html(data); }, error: function(data){alert(data);} }); } window.addEventListener("load", function () { x("hi post"); }); </script> </head> <body> </body> </html> 

Ajax-get.html

  <html> <head> <title>getting using ajax</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <script> $(document).ready(function(){ $.ajax({ url: "pivot_cookie.php", type: "GET", data: "(cookie - I dont know how to get it)", success: function(data,b,c){ alert("Cookie Retreival: success"); $("body").html(data); }, error: function(data){alert("Cookie Retrieval: failure");} }); }); </script> </head> <body> </body> </html>