![](/img/trans.png)
[英]Passing a PHP $_POST array to javascript/jQuery to send back to PHP via ajax
[英]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
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");}
});
}
您沒有為Cookie設置正確的有效期。 嘗試:
setcookie($cookie_name, $cookie_value, time() + 3600, "/"); // expire in 1 hour
除了不給PHPs setcookie()
提供第3個參數所需的內容外,您還需要為$.ajax()
的.success()
方法設置一個參數。
之后,您可以使.success(data)
處理所需的data
。
請注意 ,我要傳遞的JSON數據代替ajax-post.html
文件中的data
屬性。
data: {"config_copy": config_copy}
根據您要處理的數據,您可以只使用Javascript檢索Cookie數據。
在網絡瀏覽器的控制台中嘗試以下操作? 設置cookie之后(假設您僅設置了一個pivot_config
)
escape( document.cookie.split('=').pop() ).replace('+', ' ')
還要注意,Cookie可以存儲的數據量有限。
$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];
}
}
<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>
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.