8

我找到了一个参考XMLHttpRequest

  final req = new XMLHttpRequest();
  req.open('GET', '${Sections.home}/data/$name', false);
  req.send();
  _htmlBody = req.responseText; 

完整来源

但这是为了async = false,有没有一个可行的例子async = true

4

1 回答 1

6

在https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/samples/belay/bcap/bcap_client.dart有一个例子

  void privateInvoke(String ser, String method, String data,
                     SuccessI ski, FailureI fki) {
    if (urlRegex.hasMatch(ser)) {
      var req = new XMLHttpRequest();
      req.open(method, ser, true);
      req.on.readyStateChange.add(void _(evt) {
        if (req.readyState == 4) {
          if (req.status == 200) {
            ski(req.responseText);
          } else {
            fki(new BcapError(req.status, req.statusText));
          }
        }
      });
      req.send(data);
      return;
    } else {
      super.privateInvoke(ser, method, data, ski, fki);
    }
  }

https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/client/samples/total/src/ServerChart.dart中的另一个异步示例

XMLHttpRequest request = new XMLHttpRequest();
request.on.readyStateChange.add((Event event) {
  if (request.readyState == XMLHttpRequest.DONE && request.status == 200) {
    callback("data:image/png;base64,${StringUtils.base64Encode(request.responseText)}");
  }
});
...
request.open("POST", url, true, null, null);
request.setRequestHeader("Content-type", "text/plain");
request.overrideMimeType("text/plain; charset=x-user-defined");
print("Chart request: ${data}");
request.send(data);
于 2011-11-14T15:55:30.690 回答