阿贾克斯后到PHP。保存cookie,并寄回给JavaScript [英] Ajax post to php. Save cookie and send it back to javascript
问题描述
我发送的数据通过AJAX POST到PHP。我想将它保存在一个PHP的cookie,然后就能通过AJAX的GET请求来检索它的JavaScript。在PHP中,我的cookie检查函数返回的cookie ____未设置。我在做什么错,是造成我不能够存储我的cookie,然后检索它。
AJAX POST
函数(配置){
VAR config_copy = JSON.parse(JSON.stringify(配置));
//后的cookie
$阿贾克斯({
网址:PHP / pivot_cookie.php
键入:POST,
数据:config_copy,
成功:函数(){警报(曲奇:成功)},
错误:功能(数据){警报(数据);}
});
}
PHP
$ cookie_name =pivot_config;
$ cookie_value = $ _ POST ['config_copy'];
的setcookie($ cookie_name,$ cookie_value,/);
// cookie检查功能
如果(!使用isset($ _ COOKIE [$ cookie_name])){
回声曲奇命名为。 $ cookie_name。 '没有设置!;
} 其他 {
回声曲奇'。 $ cookie_name。 '设置< BR!>中;
回声的价值是:。 $ _COOKIE [$ cookie_name]
}
AJAX GET 我不知道我把在数据字段检索该cookie,所以我可以将它传递到我的其他功能之一
$(文件)。就绪(函数(){
$阿贾克斯({
网址:PHP / pivot_cookie.php
键入:GET,
数据:(饼干 - 我不知道如何得到它)
成功:函数(){警报(曲奇Retreival:成功)},
错误:功能(数据){警报(曲奇检索:失败);}
});
}
除了不给PHP的的setcookie()
它想了第3个参数是什么
你还需要设置 $一个参数。阿贾克斯()
的 .success()
方法。
之后,你可以让 .success(数据)
办理数据
不过你想要的。
注意 JSON数据我传递代替数据
在 AJAX-post.html <物业/ code>文件。
数据:{config_copy:config_copy}
根据数据,你正在处理,你可以只使用JavaScript 检索cookie数据。
试试下面的Web浏览器的控制台里面?当你设置cookie
(假设你只设置一个cookie的 pivot_config
)
逃生(document.cookie.split('=')。pop()方法).replace('+','')
另外需要注意的饼干中的数据就可以存储量的限制。
pivot_cookie.php
$ cookie_name =pivot_config;
如果(使用isset($ _ POST ['config_copy'])){
$ cookie_value = $ _ POST ['config_copy'];
的setcookie($ cookie_name,$ cookie_value,时间()+ 3600,/);
// cookie检查功能
如果(!使用isset($ _ COOKIE [$ cookie_name])){
回声曲奇命名为。 $ cookie_name。 '没有设置!;
} 其他 {
回声曲奇'。 $ cookie_name。 '设置&LT; BR!&gt;中;
回声的价值是:。 $ _COOKIE [$ cookie_name]
}
}
其他 {
如果(使用isset($ _ COOKIE [$ cookie_name])){
回声$ _COOKIE [$ cookie_name]
}
}
AJAX-post.html
&LT; HTML&GT;
&LT; HEAD&GT;
&LT;冠军&GT; /标题&gt;使用AJAX和LT得到;
&所述;脚本的src =http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js&GT;&所述; /脚本&GT;
&LT;脚本&GT;
函数x(配置){
VAR config_copy = JSON.parse(JSON.stringify(配置));
//后的cookie
$阿贾克斯({
网址:pivot_cookie.php
键入:POST,
数据:{config_copy:config_copy},
成功:功能(数据,B,C){
警报(曲奇Retreival:成功);
$(机构)HTML(数据);
},
错误:功能(数据){警报(数据);}
});
}
window.addEventListener(负荷,函数(){
X(喜交);
});
&LT; / SCRIPT&GT;
&LT; /头&GT;
&LT;身体GT;
&LT; /身体GT;
&LT; / HTML&GT;
AJAX-get.html
&LT; HTML&GT;
&LT; HEAD&GT;
&LT;冠军&GT; /标题&gt;使用AJAX和LT得到;
&所述;脚本的src =http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js&GT;&所述; /脚本&GT;
&LT;脚本&GT;
$(文件)。就绪(函数(){
$阿贾克斯({
网址:pivot_cookie.php
键入:GET,
数据:(饼干 - 我不知道如何得到它),
成功:功能(数据,B,C){
警报(曲奇Retreival:成功);
$(机构)HTML(数据);
},
错误:功能(数据){警报(曲奇检索:失败);}
});
});
&LT; / SCRIPT&GT;
&LT; /头&GT;
&LT;身体GT;
&LT; /身体GT;
&LT; / HTML&GT;
I am sending data to php via ajax POST. I want to save it in a php cookie, and then be able to retrieve it in javascript via a ajax GET request. In PHP, my cookie check function is returning "cookie ____ is not set". What am I doing wrong that is causing me not being able to store my cookie, and then retrieve it.
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 I dont know what I put in the "data" field to retrieve the cookie so I can pass it into one of my other functions
$(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");}
});
}
Aside from not giving PHPs setcookie()
what it wants for a 3rd parameter
you also needed to set one parameter for $.ajax()
's .success()
method.
After that you can make .success(data)
handle the data
however you want.
Note the JSON data I am passing in place of the data
property in the ajax-post.html
file.
data: {"config_copy": config_copy}
Depending on the data you're handling you could just use Javascript to retrieve the cookie data.
Try the below inside your web browser's Console? After you've set the cookie
( assuming you set only the one cookie pivot_config
)
escape( document.cookie.split('=').pop() ).replace('+', ' ')
Also to note cookies are limited in the amount of data they can store.
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>
这篇关于阿贾克斯后到PHP。保存cookie,并寄回给JavaScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!