我有以下函数检查来自服务器的返回消息,看它是否为true / false,但它似乎没有返回true或false。
// Return from server
xhr.onload = function() {
var data = JSON.parse(this.responseText);
Ti.API.info(data);
if (data.success == true) {
Ti.API.info('Logged In');
return true;
// If not flag an error
} else {
return false;
Ti.API.info('Failed Registration');
};
};
这是从服务器返回的消息,其中成功将为0或1。
{
message = "Username already exists.";
success = 0;
}
答案 0 :(得分:1)
基本上if-else
无法选择第三条路径,它始终是两条路径。但是,使用您的代码,我认为问题在于指令顺序,它应该是:
// Return from server
xhr.onload = function() {
var data = JSON.parse(this.responseText);
Ti.API.info(data);
if (data.success == true) {
Ti.API.info('Logged In');
return true;
// If not flag an error
} else {
Ti.API.info('Failed Registration');
return false;
};
};
这样就可以调用Logged In
或Failed Registration
。
在原始帖子success=0
中评估为false
,但由于return
语句是第一个 - Ti.API.info('Failed Registration');
从未执行过。