title: ServiceStack CORS request failing even though OPTIONS preflight checks out
body: <p>I have enabled the CORS feature in ServiceStack, for all verbs, standard headers plus a few custom ones, and all origins. From my Angular application, I am getting the CORS "No 'Access-Control-Allow-Origin' header is present on the requested resource" error when trying to make a PUT call to the server. If I look at my traffic, I see the OPTIONS preflight request to the resource returning with a valid 200 message, and the ACAO header is present and set to *.</p>
  
  <pre><code>// CORS PREFLIGHT REQUEST
  OPTIONS /referral HTTP/1.1
  Host: api.mydomain.com
  Connection: keep-alive
  Access-Control-Request-Method: PUT
  Origin: http://127.0.0.1:9000
  User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
  Access-Control-Request-Headers: accept, x-uatoken, x-ualocation, content-type
  Accept: */*
  Referer: http://127.0.0.1:9000/
  Accept-Encoding: gzip,deflate,sdch
  Accept-Language: en-US,en;q=0.8
  
  // CORS RESPONSE
  HTTP/1.1 200 OK
  Cache-Control: private
  Vary: Accept
  Server: Microsoft-IIS/8.0
  X-Powered-By: ServiceStack/4.020 Win32NT/.NET
  Access-Control-Allow-Origin: *
  Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
  Access-Control-Allow-Headers: Content-Type, X-UAToken, X-UAUser, X-UALocation, Authorization
  X-AspNet-Version: 4.0.30319
  X-Powered-By: ASP.NET
  Date: Thu, 05 Jun 2014 17:27:47 GMT
  Content-Length: 0
  </code></pre>
  
  <p>Note: I am using angular-file-upload library to make this request as multipart/form-data (pulling files from Request.Files and deserializing data from Request.FormData on the server). Debugging the second request (the actual PUT) in Chrome has that message about "Provisional headers are shown", so I'm not sure how useful that data is:</p>
  
  <pre><code>Accept:application/json, text/plain, */*
  Content-Type:multipart/form-data; boundary=----WebKitFormBoundary3rvpR6k8pz4rghGy
  Origin:http://127.0.0.1:9000
  Referer:http://127.0.0.1:9000/
  User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
  X-UALocation:7
  X-UAToken:yoqoByj-T1SBDHCYir92JQ
  Request Payload
  ...etc...
  </code></pre>
  
  <p>Any ideas?</p>