我有这个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;
?>
答案 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);
}
});