title: Why am I getting a 403 error when uploading to S3 from the browser?
body: <p>So I've tried looking through previous answers on here and nothing seems to be working. I'm using Dropzone, which appears to make an OPTIONS request to get all the allowed CORS related information, but it doesn't seem to be returning properly</p>
  
  <p>So from looking in the Chrome dev tools, I have the following Request Headers</p>
  
  <pre><code>Host: mybucket.s3.amazonaws.com
  Connection: keep-alive
  Pragma: no-cache
  Cache-Control: no-cache
  Access-Control-Request-Method: POST
  Origin: http://localhost:9010
  User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36
  Access-Control-Request-Headers: accept, cache-control, content-type, x-requested-with
  Accept: */*
  Referer: http://localhost:9010/upload
  Accept-Encoding: gzip, deflate, sdch
  Accept-Language: en-US,en;q=0.8
  </code></pre>
  
  <p>And these are the Response Headers I'm getting</p>
  
  <pre><code>HTTP/1.1 403 Forbidden
  x-amz-request-id: 9BE37C4F32052EAB
  x-amz-id-2: Zxg+v9AQ7G7sgMKz4P7xleUhrymyWGbBNNof8jFFsZ5n0Xw8T/mPovbMO55HZ5fL
  Content-Type: application/xml
  Transfer-Encoding: chunked
  Date: Fri, 28 Aug 2015 18:35:26 GMT
  Server: AmazonS3
  </code></pre>
  
  <p>According to the <a href="http://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html" rel="nofollow">AWS documentation</a> I should be getting <strong>Access-Control-Allow-Methods</strong> and <strong>Access-Control-Allow-Headers</strong> among things, but I don't seem to be.</p>
  
  <p>I know my bucket is valid, and the url is valid and my CORS file in the bucket is as follows:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"&gt;
      &lt;CORSRule&gt;
          &lt;AllowedOrigin&gt;*&lt;/AllowedOrigin&gt;
          &lt;AllowedMethod&gt;GET&lt;/AllowedMethod&gt;
          &lt;AllowedMethod&gt;POST&lt;/AllowedMethod&gt;
          &lt;AllowedMethod&gt;PUT&lt;/AllowedMethod&gt;
          &lt;MaxAgeSeconds&gt;3000&lt;/MaxAgeSeconds&gt;
          &lt;AllowedHeader&gt;Authorization&lt;/AllowedHeader&gt;
      &lt;/CORSRule&gt;
  &lt;/CORSConfiguration&gt;
  </code></pre>
  
  <p>So in terms of the form data that's being sent, I have the following:</p>
  
  <pre><code>acl
  key
  policy
  x-amx-credential
  x-amz-algorithm
  x-amz-date
  x-amz-signature
  </code></pre>
  
  <p>In addition to the file data. I don't think there's anything I'm missing</p>