title: $http POST request with AngularJS post's my data to server but fails with error message "not allowed by Access-Control-Allow-Origin"
body: <p>I am literally scouring the internet looking for ways to find the right approach to post my data to server using AngularJS.</p>
  
  <p>When I do a $http POST request with Angular JS it post's my data to server but fails with error message "Origin <code>http://localhost:8000</code> is not allowed by Access-Control-Allow-Origin", it doesn't matter if I try it with "file:///", the result is still the same.</p>
  
  <p>I tried all remedies mentioned on internet including </p>
  
  <pre><code> app.config(['$httpProvider', function ($httpProvider) {
              $httpProvider.defaults.useXDomain = true;
              delete $httpProvider.defaults.headers.common['X-Requested-With'];
          }]);
  </code></pre>
  
  <p>and followed most of the instructions in this <a href="http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server" rel="nofollow">article</a> 
  but they do not work for me.</p>
  
  <p>I also set <code>Access-Control-Allow-Origin: *</code> and <code>access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, access_token, Origin, X-Requested-With, Content-Type, Accept, access_token</code> on server side methods but I am still getting that same error, the following is my code</p>
  
  <pre><code>var URL = "https://myURL";
          var app = angular.module('myApp', []);
          app.config(['$httpProvider', function ($httpProvider) {
              $httpProvider.defaults.useXDomain = true;
              delete $httpProvider.defaults.headers.common['X-Requested-With'];
          }]);
          app.controller('UserController', function($scope, $http){
              $scope.user = {};
              $scope.createUser = function () {
                  $http({
                      url: URL,
                      data: $scope.user,
                      method: "POST",
                      headers: {
                          "Content-Type": "application/json",
                          "access_token": "sometoken"
                      }
                  }).success(function(response){
                              $scope.response = response;
                              alert('ok');
                          }).error(function(error){
                              $scope.error = error;
                              alert('error');
                          });
              }
          });
  </code></pre>
  
  <p>I have no idea what I am doing wrong here, please help me out.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p><strong>The following is my preflight headers</strong></p>
  
  <pre><code>Request URL:https://myURL
  Request Method:OPTIONS
  Status Code:200 OK
  Request Headersview source
  :host:someapp.appspot.com
  :method:OPTIONS
  :path:somepath
  :scheme:https
  :version:HTTP/1.1
  accept:*/*
  accept-encoding:gzip,deflate,sdch
  accept-language:en-US,en;q=0.8
  access-control-request-headers:accept, origin, access_token, content-type
  access-control-request-method:POST
  dnt:1
  origin:http://localhost:8000
  referer:http://localhost:8000/samplepost.html
  user-agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36
  Response Headersview source
  access-control-allow-headers:Origin, X-Requested-With, Content-Type, Accept, access_token
  access-control-allow-origin:*
  alternate-protocol:443:quic
  content-length:0
  content-type:text/html
  date:Mon, 16 Sep 2013 17:58:03 GMT
  server:Google Frontend
  status:200 OK
  version:HTTP/1.1
  </code></pre>
  
  <p><strong>And the following is my POST headers:</strong></p>
  
  <pre><code>Request URL:someURL
  Request Headersview source
  Accept:application/json, text/plain, */*
  access_token:dsfdsfds
  Content-Type:application/json
  Origin:http://localhost:8000
  Referer:http://localhost:8000/samplepost.html
  User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36
  Request Payloadview source
  {name:adasds, email:sdsfd@gmail.com, phone:325325325, comments:fddsfsdfsd}
  comments: "fddsfsdfsd"
  email: "sdsfd@gmail.com"
  name: "adasds"
  phone: "325325325"
  </code></pre>
  
  <p>Firefox request headers and response headers:</p>
  
  <pre><code>Response Headersview
  Access-Control-Allow-Orig...    *, *
  Alternate-Protocol  443:quic
  Cache-Control   private
  Content-Encoding    gzip
  Content-Length  136
  Content-Type    application/json
  Date    Mon, 16 Sep 2013 18:30:17 GMT
  Server  Google Frontend
  Vary    Accept-Encoding
  X-Firefox-Spdy  3
  access-control-allow-head...    Origin, X-Requested-With, Content-Type, Accept, access_token, Origin, X-Requested-With, Content-Type, Accept, access_token
  Request Headersview source
  Accept  application/json, text/plain, */*
  Accept-Encoding gzip, deflate
  Accept-Language en-US,en;q=0.5
  Cache-Control   no-cache
  Connection  keep-alive
  Content-Length  100
  Content-Type    application/json; charset=UTF-8
  Host    someapp.appspot.com
  Origin  null
  Pragma  no-cache
  User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0
  access_token    dsfdsfds
  </code></pre>