Cloudfront -> S3 -> API GatewayFont from origin has been blocked from loading by Cross-Origin Resource Sharing policyAWS API Gateway endpoint gives CORS error when POST from static site on S3API Gateway CORS: no 'Access-Control-Allow-Origin' headerForwarding CloudFront Host Header to API GatewayAWS API Gateway behind CloudFront, forwarding headers?Missing Authentication Token Error with CloudFront & API GatewayHow to secure AWS-API Gateway with out AuthenticationCloudFront + API Gateway Origin issuesCan't enable CORS on Lambda + API Gateway + Cloudfront on the Cloudfront layerXMLHttpRequest to API GATEWAY not working

Terse Method to Swap Lowest for Highest?

Does malloc reserve more space while allocating memory?

How could a planet have erratic days?

Can I say "fingers" when referring to toes?

Mimic lecturing on blackboard, facing audience

Why does the Sun have different day lengths, but not the gas giants?

Using substitution ciphers to generate new alphabets in a novel

Mixing PEX brands

Can disgust be a key component of horror?

creating a ":KeepCursor" command

What are the balance implications behind making invisible things auto-hide?

Probability that THHT occurs in a sequence of 10 coin tosses

Why would a new[] expression ever invoke a destructor?

Pre-mixing cryogenic fuels and using only one fuel tank

What is the evidence for the "tyranny of the majority problem" in a direct democracy context?

Does Doodling or Improvising on the Piano Have Any Benefits?

How to say when an application is taking the half of your screen on a computer

Hero deduces identity of a killer

Biological Blimps: Propulsion

Angel of Condemnation - Exile creature with second ability

Calculating total slots

Do the primes contain an infinite almost arithmetic progression?

Limits and Infinite Integration by Parts

When were female captains banned from Starfleet?



Cloudfront -> S3 -> API Gateway


Font from origin has been blocked from loading by Cross-Origin Resource Sharing policyAWS API Gateway endpoint gives CORS error when POST from static site on S3API Gateway CORS: no 'Access-Control-Allow-Origin' headerForwarding CloudFront Host Header to API GatewayAWS API Gateway behind CloudFront, forwarding headers?Missing Authentication Token Error with CloudFront & API GatewayHow to secure AWS-API Gateway with out AuthenticationCloudFront + API Gateway Origin issuesCan't enable CORS on Lambda + API Gateway + Cloudfront on the Cloudfront layerXMLHttpRequest to API GATEWAY not working













0















I've created a REST API that API Gateway will route to. Using Postman I can do a POST request to my API Gateway and everything works fine. I have a static Angular site hosted on S3 that has CloudFront in front of it. When trying to make that same POST request from Cloudfront to S3 I get the following:



Access to XMLHttpRequest at 'API Gateway URL' from origin 'Cloud Front URL' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.


I've enabled CORS in my API Gateway, I've added Whitelisting for ORIGIN in my Cloudfront. I've added CORS to my S3. I'm banging my head here trying to figure out where I'm going wrong.



S3 CORS Rules:



<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>300</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>


Thank you for any help.










share|improve this question
























  • How do you enable CORS on S3? <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>*</AllowedMethod> </CORSRule> </CORSConfiguration>

    – anhlc
    Mar 8 at 2:03











  • @anhlc Please see edit.

    – mint
    Mar 8 at 2:10











  • seems you don't have issue with S3. What language do you use at the backend behind API gateway? For example nodejs will need to set all these headers: response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

    – anhlc
    Mar 8 at 4:52











  • @anhlc I'm using a .Net Core Web API backend. The S3 Front End uses angular.

    – mint
    Mar 8 at 13:25






  • 3





    Read the error message carefully: "Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response." This indicates that your request is trying to send access-control-allow-origin, which does not make sense -- that is a response header, not a request header, and should not be sent with a request (nor proposed in pre-flight). Showing the front-end code that actually makes the POST request seems appropriate, here.

    – Michael - sqlbot
    Mar 8 at 21:22
















0















I've created a REST API that API Gateway will route to. Using Postman I can do a POST request to my API Gateway and everything works fine. I have a static Angular site hosted on S3 that has CloudFront in front of it. When trying to make that same POST request from Cloudfront to S3 I get the following:



Access to XMLHttpRequest at 'API Gateway URL' from origin 'Cloud Front URL' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.


I've enabled CORS in my API Gateway, I've added Whitelisting for ORIGIN in my Cloudfront. I've added CORS to my S3. I'm banging my head here trying to figure out where I'm going wrong.



S3 CORS Rules:



<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>300</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>


Thank you for any help.










share|improve this question
























  • How do you enable CORS on S3? <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>*</AllowedMethod> </CORSRule> </CORSConfiguration>

    – anhlc
    Mar 8 at 2:03











  • @anhlc Please see edit.

    – mint
    Mar 8 at 2:10











  • seems you don't have issue with S3. What language do you use at the backend behind API gateway? For example nodejs will need to set all these headers: response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

    – anhlc
    Mar 8 at 4:52











  • @anhlc I'm using a .Net Core Web API backend. The S3 Front End uses angular.

    – mint
    Mar 8 at 13:25






  • 3





    Read the error message carefully: "Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response." This indicates that your request is trying to send access-control-allow-origin, which does not make sense -- that is a response header, not a request header, and should not be sent with a request (nor proposed in pre-flight). Showing the front-end code that actually makes the POST request seems appropriate, here.

    – Michael - sqlbot
    Mar 8 at 21:22














0












0








0








I've created a REST API that API Gateway will route to. Using Postman I can do a POST request to my API Gateway and everything works fine. I have a static Angular site hosted on S3 that has CloudFront in front of it. When trying to make that same POST request from Cloudfront to S3 I get the following:



Access to XMLHttpRequest at 'API Gateway URL' from origin 'Cloud Front URL' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.


I've enabled CORS in my API Gateway, I've added Whitelisting for ORIGIN in my Cloudfront. I've added CORS to my S3. I'm banging my head here trying to figure out where I'm going wrong.



S3 CORS Rules:



<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>300</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>


Thank you for any help.










share|improve this question
















I've created a REST API that API Gateway will route to. Using Postman I can do a POST request to my API Gateway and everything works fine. I have a static Angular site hosted on S3 that has CloudFront in front of it. When trying to make that same POST request from Cloudfront to S3 I get the following:



Access to XMLHttpRequest at 'API Gateway URL' from origin 'Cloud Front URL' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.


I've enabled CORS in my API Gateway, I've added Whitelisting for ORIGIN in my Cloudfront. I've added CORS to my S3. I'm banging my head here trying to figure out where I'm going wrong.



S3 CORS Rules:



<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>300</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>


Thank you for any help.







amazon-s3 aws-api-gateway amazon-cloudfront






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 8 at 2:09







mint

















asked Mar 8 at 1:48









mintmint

2,049103148




2,049103148












  • How do you enable CORS on S3? <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>*</AllowedMethod> </CORSRule> </CORSConfiguration>

    – anhlc
    Mar 8 at 2:03











  • @anhlc Please see edit.

    – mint
    Mar 8 at 2:10











  • seems you don't have issue with S3. What language do you use at the backend behind API gateway? For example nodejs will need to set all these headers: response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

    – anhlc
    Mar 8 at 4:52











  • @anhlc I'm using a .Net Core Web API backend. The S3 Front End uses angular.

    – mint
    Mar 8 at 13:25






  • 3





    Read the error message carefully: "Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response." This indicates that your request is trying to send access-control-allow-origin, which does not make sense -- that is a response header, not a request header, and should not be sent with a request (nor proposed in pre-flight). Showing the front-end code that actually makes the POST request seems appropriate, here.

    – Michael - sqlbot
    Mar 8 at 21:22


















  • How do you enable CORS on S3? <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>*</AllowedMethod> </CORSRule> </CORSConfiguration>

    – anhlc
    Mar 8 at 2:03











  • @anhlc Please see edit.

    – mint
    Mar 8 at 2:10











  • seems you don't have issue with S3. What language do you use at the backend behind API gateway? For example nodejs will need to set all these headers: response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

    – anhlc
    Mar 8 at 4:52











  • @anhlc I'm using a .Net Core Web API backend. The S3 Front End uses angular.

    – mint
    Mar 8 at 13:25






  • 3





    Read the error message carefully: "Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response." This indicates that your request is trying to send access-control-allow-origin, which does not make sense -- that is a response header, not a request header, and should not be sent with a request (nor proposed in pre-flight). Showing the front-end code that actually makes the POST request seems appropriate, here.

    – Michael - sqlbot
    Mar 8 at 21:22

















How do you enable CORS on S3? <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>*</AllowedMethod> </CORSRule> </CORSConfiguration>

– anhlc
Mar 8 at 2:03





How do you enable CORS on S3? <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>*</AllowedMethod> </CORSRule> </CORSConfiguration>

– anhlc
Mar 8 at 2:03













@anhlc Please see edit.

– mint
Mar 8 at 2:10





@anhlc Please see edit.

– mint
Mar 8 at 2:10













seems you don't have issue with S3. What language do you use at the backend behind API gateway? For example nodejs will need to set all these headers: response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

– anhlc
Mar 8 at 4:52





seems you don't have issue with S3. What language do you use at the backend behind API gateway? For example nodejs will need to set all these headers: response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

– anhlc
Mar 8 at 4:52













@anhlc I'm using a .Net Core Web API backend. The S3 Front End uses angular.

– mint
Mar 8 at 13:25





@anhlc I'm using a .Net Core Web API backend. The S3 Front End uses angular.

– mint
Mar 8 at 13:25




3




3





Read the error message carefully: "Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response." This indicates that your request is trying to send access-control-allow-origin, which does not make sense -- that is a response header, not a request header, and should not be sent with a request (nor proposed in pre-flight). Showing the front-end code that actually makes the POST request seems appropriate, here.

– Michael - sqlbot
Mar 8 at 21:22






Read the error message carefully: "Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response." This indicates that your request is trying to send access-control-allow-origin, which does not make sense -- that is a response header, not a request header, and should not be sent with a request (nor proposed in pre-flight). Showing the front-end code that actually makes the POST request seems appropriate, here.

– Michael - sqlbot
Mar 8 at 21:22













0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55055595%2fcloudfront-s3-api-gateway%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55055595%2fcloudfront-s3-api-gateway%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to get text form Clipboard with JavaScript in Firefox 56?How to validate an email address in JavaScript?How do JavaScript closures work?How do I remove a property from a JavaScript object?How do you get a timestamp in JavaScript?How do I copy to the clipboard in JavaScript?How do I include a JavaScript file in another JavaScript file?Get the current URL with JavaScript?How to replace all occurrences of a string in JavaScriptHow to check whether a string contains a substring in JavaScript?How do I remove a particular element from an array in JavaScript?

Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme

List of MPs elected to the English parliament in 1640 (April) Contents List of constituencies and members See also Notes References Navigation menueNational Archives – The Glynde Place ArchivesCobbett's Parliamentary history of England, from the Norman Conquest in 1066 to the year 1803'Aldermen in Parliament', The Aldermen of the City of London: Temp. Henry III – 1912onepage&q&f&#61, false 229