我正在尝试向我的php做一个ajax请求,但由于某些未知的原因它似乎失败了,因为我没有进入成功部分我有console.log
任何人都可以给我一些暗示,这可能是什么问题,我现在被困了太久了?
以下是我的jQuery的外观:
getPending();
function getPending(){
var usernameLS = localStorage.getItem('userNameLS');
var userTypeLS = localStorage.getItem('isAdminLS');
if (userTypeLS!=1) {
console.log("inside");//i am getting here
$.ajax({
type: "POST",
dataType: 'json',
url: 'get-pending.php',
data: {
data: usernameLS //this is a string, "user2" for instance
},
success: function(data) {
console.log("Thanks!!!",data);//i never got here
},
failure: function() {
console.log("Error!");
alert(' Fail');
}
});
}
这是我的php:
<?php
$string = file_get_contents("appointments.json");
$usernameAjax = $_POST['data'];
var_dump($usernameAjax);
$json_a = json_decode($string, true);
$isPending;
foreach ($json_a as &$json_r) {
if ($usernameAjax==$json_r['userName'] && $json_r['status'] = "Pending") {
$isPending = 1;
}
else{
$isPending = 0;
}
}
var_dump($isPending);
echo $isPending; //i tried with a hardcodede 1 or 0 zero. Didn't work.
?>
答案 0 :(得分:1)
好像你的输出不是正确的JSON格式,所以客户端无法理解收到的内容。
首先 - 删除 var_dump ,它会打破json格式;
第二 - 你只输出 1 或 0 - 这也不是正确的json;使用 json_encode 正确格式化回复;
第三 - php文件通常包含?&gt; 之后的尾随符号,这些符号也会附加到输出并且可能会破坏输出格式。不要用?&gt; 关闭php;另外,您可以使用 die($ output)而不是 echo($ output)来避免在写入数据后输出任何内容