1

我有以下 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变量。

但它从不运行成功功能,也从不提醒数据。

我究竟做错了什么?

4

1 回答 1

3

注意:我知道这个问题是几个月前的问题,但任何帮助对于寻找此类问题答案的人都会很有用。

据我所知,因为我遇到了类似的问题,所以这一切都取决于您从网络服务获得的响应(您可以使用 Chrome 调试控制台查看)。例如,我现在得到这个:

  • 就绪状态:4
  • 状态文本:“确定”
  • responseText:(我正在寻找的结果)

问题是,正如你所说,我总是运行回调的错误部分,而不是成功,即使我得到了正确的 responseText。正如我所读到的,那是因为对 WS 的调用是正常的,但从 JSON 的解析却不是,所以它称为“错误”。

到目前为止,我不知道如何解决它,但也许这会提供一个线索。

于 2013-12-19T15:15:39.687 回答