Hi Instructure, the following curl checked Access-Control-Allow-Methods for instructure-uploads.s3.amazonaws.com as recommended in AWS S3 ticket referenced below. The OPTIONS method is not listed as one of the accepted methods. Please, can you verify that the Safari preflight OPTIONS method is allowed on https://instructure-uploads.s3.amazonaws.com?
Access-Control-Allow-Methods: GET, PUT, POST, OPTIONS
$ curl -H "origin: any" -v "https://instructure-uploads.s3.amazonaws.com"
> GET / HTTP/1.1
> Host: instructure-uploads.s3.amazonaws.com
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, PUT, POST
< Access-Control-Max-Age: 3000
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
< x-amz-bucket-region: us-east-1
< Server: AmazonS3
"By default, CloudFront allows only the GET and HEAD methods, but some web browsers [i.e. Safari] might issue requests for the OPTIONS method."
The CloudFront distribution's cache behavior allows the OPTIONS method for HTTP requests
If you're still seeing errors after you update your CORS policy and forward the appropriate headers, try allowing the OPTIONS HTTP method in your distribution's cache behavior. By default, CloudFront allows only the GET and HEAD methods, but some web browsers might issue requests for the OPTIONS method.
To enable the OPTIONS method on your CloudFront distribution, follow these steps:
- Open your distribution from the CloudFront console.
- Choose the Behaviors tab.
- Choose Create Behavior, or choose an existing behavior, and then choose Edit.
- For Allowed HTTP Methods, select GET, HEAD, OPTIONS.
https://aws.amazon.com/premiumsupport/knowledge-center/no-access-control-allow-origin-error/
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.