我有一个ajax请求,无法正确返回JSON响应以便后续处理。
在下面的PHP代码中,$ unameExists返回true或false,但是当我将其发送回JS成功例程时,console.log(data.unameExists);返回为undefined。因此,我的if / else语句正确执行。
HTML
ID Diff
0 1.12
1 0.32
2 3.2
JS
<input type="text" name="username" id="username" value="<?php echo $this->username;?>" class="middle" />
PHP
$('#username').on('blur', function() {
$.ajax({
url: "?module=Iders&controller=index&action=check_user",
data: { 'username' : $('#username').val() },
type: "POST",
dataType: 'json',
success: function(data, unameExists) {
console.log(data.unameExists);
console.log(unameExists);
if(data.unameExists === 'true') {
alert('Username is NOT available!');
}
else {
alert('Username is available!');
}
},
error: function(data){
//error
}
});
答案 0 :(得分:0)
阅读手册对我们有所帮助:http://api.jquery.com/jquery.ajax/
您没有像jQuery那样使用回调参数。第一个成功回调参数是从服务器返回的完整数据。它是字符串或某种对象,基于dataType
。
由于您没有设置dataType
,jQuery会猜测返回的内容,并且可能会直接解析为JSON blob。
使用以下console.log()
语句检查data
- 参数的内容。
success: function(data) {
/* When your PHP script returns a variable that is encoded into JSON: */
console.log(data.unameExists);
/* In all other cases check the `data` arguemtn directly: */
console.log(data);
},