-3

サーバーからの戻りメッセージをチェックして真/偽かどうかを確認する以下の関数がありますが、真または偽を返していないようです。

// 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;
}
4

1 に答える 1

1

基本的if-elseに、3 番目のパスを選択することはできません。常に 2 つのうちの 1 つになります。ただし、あなたのコードでは、問題は命令の順序にある​​と思います。次のようにする必要があります。

// 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 InorFailed Registrationが呼び出されます。元の投稿success=0では として評価されましfalseたが、returnステートメントが最初のものであるため、Ti.API.info('Failed Registration');実行されませんでした。

于 2013-07-06T09:25:10.433 に答える