Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从未调用Jquery Ajax成功函数_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 从未调用Jquery Ajax成功函数

Javascript 从未调用Jquery Ajax成功函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有以下Ajax调用: $.ajax({ type: 'POST', url: myBaseUrl + 'Products/addItemToBasket', dataType: 'json', data: { id: window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1), amount: amount },

我有以下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函数),并更新我的
$\u会话
变量

但它从不运行success函数,也从不提醒数据

我做错了什么?

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

据我所知,因为我正在运行一个类似的问题,这完全取决于您从Web服务获得的响应(您可以使用Chrome调试控制台进行检查)。例如,我现在得到的是:

  • 重新启用日期:4
  • 状态文本:“确定”
  • responseText:(我正在寻找的结果)
问题是,正如你所说,我总是运行回调的错误部分,而不是成功,即使我得到了正确的响应文本。正如我所读到的,这是因为对WS的调用是正常的,但是来自JSON的解析不是,所以它调用“error”


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

您是否应该回显
json\u encode?您使用此->请求->is('post')让我相信这是一个cakephp应用程序。如果是,那么只是一个echo不会转储输出,您必须在关联视图中实际输出它。另外,用cakephp标记也可能有帮助。如果您只是发出警报(“测试”)或设置断点呢?你确定它没有进入success函数吗?@johnnymonster那是什么?你添加了一个
.fail()
回调来看看有什么问题吗?我怀疑返回的json无法正确解析。欢迎使用StackOverflow!请只在你有把握回答问题时才回答。明白了!对不起,我帮不上什么忙了。谢谢你的建议。