0

非同期関数を実行すると、結果がブラウザをリロードする前にエラーが発生します - OnFailure(Throwable) が実行されます。ステータス エラー コードは 0 です。

この問題は、FireFox と Chrome で発生します。

このステータスコードの意味を教えてください。

do(new AsyncCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {}

    @Override
    public void onFailure(Throwable throw) {
        do_sth();
    }
});

Boolean do() { while(true); }

それもステータスエラー0を返します

4

2 に答える 2

1

ここでの0ステ​​ータス コードは、リクエストが中止されたことを意味します (ネットワーク エラーまたはリクエストのタイムアウトを示す場合もあります)。

http://www.w3.org/TR/XMLHttpRequest/#the-status-attributeおよびhttp://www.w3.org/TR/XMLHttpRequest/#error-flagを参照してください。

于 2012-07-12T11:08:18.707 に答える
0

さまざまな種類の障害を適切に処理できるように、常に次のように定義できます( GWT APIonFailure()から適応)。

public void onFailure(Throwable caught) {
  try {
    throw caught;
  } catch (IncompatibleRemoteServiceException e) {
    // this client is not compatible with the server; cleanup and refresh the 
    // browser
  } catch (InvocationException e) {
    // the call didn't complete cleanly
  } catch (YourOwnException e) {
    // take appropriate action
  } catch (Throwable e) {
    // last resort -- a very unexpected exception
  }
}
于 2012-07-12T11:33:19.110 に答える