我有这个jQuery $ .ajax脚本:
var data = JSON.stringify( selected_products );
$.ajax({ type: "POST",
url: "addtocart.php",
data: data,
dataType: 'application/json'
});
我将其发布到一个非常简单的PHP脚本中:
$selected_products = json_decode($_POST['data'], true);
print_r($selected_products);
这是我发送的一个例子;这是Chrome DevTools中的传出数据:
data:[{"id":"RECOLOURBALM","option":"Black","quantity":1},{"id":"TOWELS","quantity":1}]
然而,这是响应的控制台读数:
Array
(
)
我认为请求正在成功并且数据正在传递,但响应都是空的。
我做错了什么?
答案 0 :(得分:3)
$selected_products = json_decode($_POST['data'], true);
echo $selected_products[0]['id'];
echo '<br>';
echo $_POST;
echo '<br>';
var_dump($_POST);
将数据添加到您的帖子
由于那里给出的字符串化,你现在变为空。请改变这样的代码。它肯定会有效。
var data=[{"id":"RECOLOURBALM","option":"Bordeaux","quantity":1},{"id":"TOWELS","quantity":1}];
//data = JSON.stringify(data);
$.ajax({
type: "POST",
url: "addtocart.php",
data: {'data':data},
success:function(returndata){
console.log(returndata);
}
});
删除stringify。
答案 1 :(得分:1)
如果OnRequestPermissionsResultCallback
设置为@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 0:
// Re-attempt file write
}
}
,您必须按如下方式接收数据。
String where = MediaStore.Images.Media.MIME_TYPE + "='image/jpeg'" + " OR " + MediaStore.Images.Media.MIME_TYPE + "='image/png'"+ " OR " + MediaStore.Images.Media.MIME_TYPE + "='image/jpg'";
Content-Type
将收到来自请求的数据,该数据包含application/json
:$data = json_decode(file_get_contents('php://input'), true);
(表单数据)