title: AWS Cors Issue - Node.js
body: <p>I am currently experiencing an issue when requesting images stored on AWS S3 (simple storage) with the CORS header. I have set up the CORS configuaration on the AWS console - and the setup 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;MaxAgeSeconds&gt;3000&lt;/MaxAgeSeconds&gt;
          &lt;AllowedHeader&gt;Authorization&lt;/AllowedHeader&gt;
      &lt;/CORSRule&gt;
  &lt;/CORSConfiguration&gt;
  </code></pre>
  
  <p>However, the response I get when requesting these images that I've stored are a little all over the place and quite intermittent. Sometimes the image is returned with the headers requred and sometimes it is not. I am really not sure why this happens. It also seems that the effect worsens when I try to make more than one request for an image with the Access-Control-Allow-Origin header set as * on a page (e.g. If I need 10 images to be retrieved all with cross origin headers). </p>
  
  <p>These are the headers that I need:</p>
  
  <pre><code>Access-Control-Allow-Methods:GET
  Access-Control-Allow-Origin:*
  Access-Control-Max-Age:3000
  </code></pre>
  
  <p>I'm really not sure what I'm doing incorrectly. I have made sure that each image tag has the crossOrigin="anonymous" attribute added to it too, but again, no luck.</p>
  
  <p>The reason for me needing these images to work cross origin is because I have installed an angular plugin which allows the user to crop images and store the cropped versions of the images as base64 strings. However, I get the following error when trying to retrive them.</p>
  
  <p><a href="https://i.stack.imgur.com/4WvY3.png" rel="noreferrer"><img src="https://i.stack.imgur.com/4WvY3.png" alt="enter image description here"></a></p>
  
  <p>These are the headers for an image that is returned correctly:</p>
  
  <pre><code>Request URL:https://trajansmarket.s3.amazonaws.com/be5bbda0-b04a-11e5-81d3-dd7ff3efeebc.jpg
  Request Method:GET
  Status Code:304 Not Modified
  Remote Address:54.231.252.131:443
  
  Response Headers
  view source
  Access-Control-Allow-Methods:GET
  Access-Control-Allow-Origin:*
  Access-Control-Max-Age:3000
  Cache-Control:public, max-age=31536000
  Date:Tue, 12 Jan 2016 21:13:03 GMT
  ETag:"77bdbe9b517acc8cba86024c592bce3f"
  Last-Modified:Fri, 01 Jan 2016 05:46:21 GMT
  Server:AmazonS3
  Vary:Origin, Access-Control-Request-Headers, Access-Control-Request-Method
  x-amz-id-2:F3OQpOHsAqySk9LNwwoJXVATVIByr4Gtvz953ZoL7DdB/dtE9nYwo99R59Rj6RzZc3dcHyk6wWY=
  x-amz-request-id:CD220FF1F6EE6CA9
  
  Request Headers
  view source
  Accept:image/webp,image/*,*/*;q=0.8
  Accept-Encoding:gzip, deflate, sdch
  Accept-Language:en-GB,en-US;q=0.8,en;q=0.6,ms;q=0.4
  Connection:keep-alive
  Host:trajansmarket.s3.amazonaws.com
  If-None-Match:"77bdbe9b517acc8cba86024c592bce3f"
  Origin:http://91.121.220.161:3000
  Referer:http://91.121.220.161:3000/
  User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
  </code></pre>
  
  <p>And here's one without the headers:</p>
  
  <pre><code>Request URL:https://trajansmarket.s3.amazonaws.com/c0671e00-b04a-11e5-81d3-
  dd7ff3efeebc.jpg
  Request Method:GET
  Status Code:200 OK (from cache)
  Remote Address:54.231.252.135:443
  
  Response Headers
  Accept-Ranges:bytes
  Cache-Control:public, max-age=31536000
  Content-Length:142102
  Content-Type:application/octet-stream
  Date:Tue, 12 Jan 2016 00:35:36 GMT
  ETag:"beb93f56e3a2a65b983addd8af35c26c"
  Last-Modified:Fri, 01 Jan 2016 05:46:25 GMT
  Server:AmazonS3
  x-amz-id-2:5XvaOd8bxMr5zwK317DfDMbk2+kzu3Zd7rsf2xl0hxwI40Oc4KDnQpgzD3sgtCRm9SXGqa93Mh0=
  x-amz-request-id:FD3EB1978C38013B
  
  Request Headers
  Provisional headers are shown
  Accept:image/webp,image/*,*/*;q=0.8
  Origin:http://91.121.220.161:3000
  Referer:http://91.121.220.161:3000/
  User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
  X-DevTools-Emulate-Network-Conditions-Client-Id:498F45FE-5D49-4AE0-AF58-F81B9AFD48AF
  </code></pre>
  
  <p>I'm just wondering if anyone would have any idea of why this would be happening. Any help would be greatly appreciated.</p>