【发布时间】:2016-10-09 11:33:31
【问题描述】:
AJAX 工作正常,但 $_POST 没有值。
我尝试过的:
-
$data = json_decode(file_get_contents('php://input'), true);&$post = json_decode($data);进入 storecart.php - 将数据更改为
'jCart=' + jData' - 删除数据类型 (Jaromanda X)
- 回答(Umakant Mane)
cart是一个对象数组
Javascript:
$(document).ready(function(){
$("#showcart").click(function(event){
event.preventDefault();
showcart();
url = 'cart.php';
$(location).attr("href",url);
});
});
function showcart(){
var jData = JSON.stringify(cart);
$.ajax({
url:"storecart.php",
type:"post",
data: {jCart : jData},
datatype: "json",
success: function(data){
console.log("SUCCESS")
console.log(jData);
},
error: function(data){
console.log("REDO")
}
});
}
storecart.php:
<?php
if(isset($_POST['jCart'])){
echo "Right";
}else{
echo "Wrong";
}
?>
如何让$_POST 接受json.stringify?
解决方案:
已解决:
我所做的只是添加一个具有隐藏值的表单
<form id = "postform" action = "cart.php" method = "post">
<input type = "hidden" id="obj" name="obj" val="">
<input type = "submit" value = "Show Cart" id = "showcart">
</form>
在 Javascript 中:
$(document).ready(function(){
$("#showcart").click(function(){
var json = JSON.stringify(cart)
$('#obj').val(json);
$('#obj').submit();
});
});
感谢所有回答的人,但希望这会有所帮助。
【问题讨论】:
-
What I have tried:- 你试过不设置dataype: "json",- 也可以看stackoverflow.com/a/18867369/5053002 -
^ 如果您希望从服务器返回 JSON,您不能只发送
Right! -
@Jaromanda X,第一个点来自您提供的链接
-
所以...如果您自己解决了问题,请不要编辑您的问题,而是将其添加为答案,然后接受它作为正确答案
标签: javascript php jquery ajax post