title: CORS with Dart, how do I get it to work?
body: <p>Just started tinkering with Dart and I decided to write a simple Http Server and a client. My server code:</p>
  
  
  
  <pre class="lang-dart prettyprint-override"><code>#import("dart:io");
  
  final HOST = "127.0.0.1";
  final PORT = 8080;
  final LOG_REQUESTS = true;
  
  void main() {
    HttpServer server = new HttpServer();
    server.addRequestHandler((HttpRequest request) =&gt; true, requestReceivedHandler);
    server.listen(HOST, PORT);
    print("Server is running on ${PORT}."); 
  }
  
  void requestReceivedHandler(HttpRequest request, HttpResponse response) {
    var pathname = request.uri;
    var apiresponse="";
    if (LOG_REQUESTS) {
      print("Request: ${request.method} ${pathname}");
    }
    if(pathname == '/api'){
      response.headers.set(HttpHeaders.CONTENT_TYPE, "text/plain; charset=UTF-8");
      response.headers.add("Access-Control-Allow-Methods", "POST, OPTIONS, GET");
      response.headers.add("Access-Control-Allow-Origin", "*");
      response.headers.add('Access-Control-Allow-Headers', '*');
      print('welcome to the good life');
      response.outputStream.writeString("API Call");
      response.outputStream.close();
    }
  }
  </code></pre>
  
  <p>My client code:</p>
  
  <pre class="lang-dart prettyprint-override"><code>#import('dart:html');
  #import('dart:json');
  
  class dartjson {
  
    dartjson() {
    }
  
    void run() {
      write("Hello World!");
    }
  
  
  
  
    void fetchFeed(){
      XMLHttpRequest xhr = new XMLHttpRequest();
      var url = "http://127.0.0.1:8080/api";
      xhr.open("GET", url, true);
      xhr.setRequestHeader('Content-Type', 'text/plain');
      //xhr.setRequestHeader('Access-Control-Request-Headers', 'http://127.0.0.1:3030');
      xhr.send();
      print(xhr.responseText);
      document.query('#status').innerHTML = xhr.responseText;
  
    }
  
  
  
  void main() {
    new dartjson().fetchFeed();
  }
  </code></pre>
  
  <p>I keep getting the error:</p>
  
  <pre class="lang-dart prettyprint-override"><code>XMLHttpRequest cannot load http://127.0.0.1:8080/api. Origin
  http://127.0.0.1:3030 is not allowed by Access-Control-Allow-Origin.
  </code></pre>
  
  <p>What I'm I doing wrong?</p>