我有以下Ajax调用:
$.ajax({
type: 'POST',
url: myBaseUrl + 'Products/addItemToBasket',
dataType: 'json',
data: {
id: window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1),
amount: amount
},
success: function (data) {
alert(data);
var dat = JSON.parse(data);
}
}
});
现在这在php中调用以下方法:
public function addItemToBasket()
{
if ($this->request->is('post')) {
//todo delete efter at have insat fancybox med valg af antal styk. (sendes via ajax).
$shopping = null;
$item = $this->Product->find('first',array('conditions' => array('Product.id' =>$this->request->data['id'])));
if(isset($_SESSION['basket'])){
$shopping = $_SESSION['basket'];
}else{
$shopping = array();
}
array_push($shopping,$item);
$_SESSION['basket'] = $shopping;
echo json_encode($_SESSION['basket']);
}
}
当我尝试调试它时,一切正常(它进入php函数)并更新我的$_SESSION
变量。
但它永远不会运行成功功能,它从不会提醒数据。
我做错了什么?
答案 0 :(得分:2)
注意:我知道这个问题来自几个月前,但任何帮助对于寻找这类问题答案的人都会有用。
据我所知,因为我遇到了类似问题,所有这些都取决于您从网络服务获得的响应(您可以使用Chrome调试控制台查看)。例如,我现在得到这个:
问题是,正如你所说,即使我得到了正确的responseText,我总是会运行回调的错误部分,而不是成功。正如我读过的那样,因为对WS的调用没问题,但是JSON的解析不是,所以它调用"错误"。
到目前为止,我不知道如何修复它,但也许这会给出一个线索。