Ajax成功从服务器接收数据,但发送失败

时间:2016-04-23 08:52:59

标签: javascript jquery ajax

我有这个ajax工作正常:

$.ajax({
    url: "../../../controller/ctrl.test.php",
    success:function(expirytime){
        alert(expirytime);
    }
});

但是当我需要将数据发送到服务器并添加此行时,它又不会再次提醒expirytime

$.ajax({
    url: "../../../controller/ctrl.test.php",
    type: 'POST',
    contentType:'application/json',
    data: JSON.stringify(data),
    dataType:'json',
    success:function(expirytime){
        alert(expirytime);
    }
});

请注意data是json数据。而且我已经在这些代码之上了。所以,它不是空的。我只是想知道为什么通过在我的第一个ajax中添加POST机制导致alert(expirytime);停止工作?

我的代码出了什么问题?谢谢

更新:出于此测试目的,PHP文件中没有任何内容,只是回显日期和时间

<?php
$date = '2016/04/30 00:00:00';
echo $date;
?>

2 个答案:

答案 0 :(得分:2)

由于你有dataType: 'json',jQuery希望PHP的响应是有效的JSON。但

echo $date;

未返回有效的JSON。当jQuery在该响应上调用JSON.parse()时会收到错误,因此不会调用success函数。

将该行更改为:

echo json_encode($date);

它应该有效。或者将dataType: 'json'更改为dataType: 'text'

答案 1 :(得分:1)

试试这个

$.ajax({
    url: "../../../controller/ctrl.test.php",
    type: 'POST',
    data: { JSON.stringify(data) },
    dataType: 'json',
    success:function(expirytime){
        alert(expirytime);
    }
});