I am trying to build an app where users upload content on their browsers to an S3 bucket through CloudFront. I have enabled CORS on the S3 bucket and ensured that the AllowedOrigin is set to \*. I can successfully push content from a browser to the S3 bucket directly so I know that CORS on S3 is configured correctly. Now, I am trying to do the same with browser -> CloudFront -> S3. CloudFront always rejects the pre-flight OPTIONS method request with a 403 forbidden response.

I have the following options enabled on CloudFront:

* Allowed HTTP Methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
* Whitelist Headers: Access-Control-Request-Headers,
* Access-Control-Request-Method, Origin OPTIONS requests are disabled
from the "Cached HTTP Methods"

CloudFront apparently now supports CORS but has anyone got it working for an HTTP method OPTIONS request? I tried asking this on the [AWS forums](https://forums.aws.amazon.com/thread.jspa?threadID=150169&tstart=0) but no responses.