4

(非同期)HttpRequest(「dart:html」から)の失敗の正確な理由を見つける方法を見つけようとしていますが、正直なところ、ここで少し迷っています。

onError コールバックは、何も役に立たない HttpRequestProgressError オブジェクトのみを受け取ります。失敗した場合、HttpRequest オブジェクト自体の「ステータス」は「0」に設定されます。

「接続が拒否されました」や「ホスト名が解決されていません」など、正確な理由を知りたいのです。

これはまったく可能ですか?

ありがとうございました!

4

2 に答える 2

-1

こちらをご覧ください

#library('Request');

#import('dart:html');
#import("dart:json");

typedef void RequestHandler(String responseText);

typedef void ErrorHandler(String error);

class ResourceRequest {
  XMLHttpRequest request;
  RequestHandler _callbackOnSuccess;
  ErrorHandler _callbackOnFailure;

  ResourceRequest.openGet(String url, RequestHandler callbackOnSuccess, [ErrorHandler callbackOnFailure])
    :  request = new XMLHttpRequest(),
      _callbackOnSuccess = callbackOnSuccess,
       _callbackOnFailure = callbackOnFailure {
    request.open("GET", url, async : true);
    request.on.loadEnd.add((XMLHttpRequestProgressEvent e) => onLoadEnd(e));
  }

  void send() {
    request.send();
  }

  void onLoadEnd(XMLHttpRequestProgressEvent event) {
    if (request.readyState == 4 && request.status == 200) {
      _callbackOnSuccess(request.responseText);
    } else if (_callbackOnFailure != null) {
      _callbackOnFailure(request.statusText);
    }
  }

}
于 2013-05-03T11:53:19.553 に答える