2011-11-14 4 views

risposta

6

C'è un esempio a 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); 
    } 
    } 

anche un altro esempio asincrona 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); 
+0

eccezionale. Grazie per la risposta rapida. – Utilitron

+2

L'API è stata rinominata in HttpRequest. Vedi anche http://www.dartlang.org/docs/dart-up-and-running/ch03.html#ch03-httprequest e http://c.dart-examples.com/api/dart-html/interface/ eventtarget/httprequest che ha sia esempi asincroni che di sincronizzazione. – karmakaze