我有以下Jquery代码,它向add-to-cart.php发送ajax请求。
var productData = {
"product_id": s_product_id,
"product_opties": s_product_opties,
"product_aantal": s_product_aantal
}
productData = JSON.stringify(productData);
$.ajax({
url: 'inc/add-to-cart.php',
dataType: "json",
contentType: "application/json; charset=utf-8",
data: productData,
type: 'POST',
success: function(response) {
alert(response.d);
},
error: function(e){
console.log(e);
}
});
添加到cart.php:
<?php
print $_POST['product_id'];
?>
我遇到两个问题,第一个问题是当我要求它时$ _POST [&#39; product_id&#39;]不存在;其次当ajax响应返回时它直接转到错误:function而不是成功的功能
控制台日志说:
[object Object]{readyState: 4, responseText: "<br /> <b>N...", status: 200, statusText: "OK"}
如果状态为OK,为什么会跳转到错误:part?
谢谢!
答案 0 :(得分:1)
尝试:
...
var productData = {
'product_id': s_product_id,
'product_opties': product_opties,
'product_aantal': product_aantal,
}
$.ajax({
url: 'inc/add-to-cart.php',
dataType: 'json',
data: productData,
type: 'POST',
success: function(response) {
console.log(response.d);
},
error: function(e){
console.log(e);
}
});
...
省略AJAX contentType
参数以及将JSON字符串化的部分,已经准备好发送到url
,因此不需要。
答案 1 :(得分:1)
删除行
productData = JSON.stringify(productData);
然后不要从<br> ...
返回HTML add_to_cart.php
,您需要返回由PHP函数json_encode
和NOTHING ELSE创建的JSON字符串。
喜欢在:
<?php echo json_encode(array('d' => 'value of d'));
答案 2 :(得分:0)
首先:来自网络服务器的状态代码为200,因为他提供了现有网站。 第二:你不需要用自己来区分json对象