【发布时间】:2015-10-27 13:32:37
【问题描述】:
我通过 ajax POST 向 php 发送数据。我想将它保存在 php cookie 中,然后能够通过 ajax GET 请求在 javascript 中检索它。在 PHP 中,我的 cookie 检查函数返回“cookie ____ is not set”。我做错了什么导致我无法存储我的 cookie,然后检索它。
AJAX 发布
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 获取 我不知道我在“数据”字段中输入了什么来检索 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");}
});
}
【问题讨论】:
-
data不是$.ajax的必需选项 -
又一次。我认为您不了解 cookie 是什么以及 cookie 是如何工作的。 See这整个过程是不必要的,没有意义
-
在浏览器
document.cookie的javascript中设置一个cookie,当页面被发送到服务器时,cookie也会自动发送。当新页面从服务器返回到浏览器时,cookie 也会返回到浏览器。如果您想在服务器上更改它,它会以新状态返回,或者您可以在浏览器上更改它,新值会在下一次往返时返回到服务器。你绝对不需要 jquery 发布这些东西,它根本没有任何意义。
标签: javascript php jquery ajax cookies