Reputation: 88367
I get
While attempting to enable CORS on API Gateway, why is that and how do I resolve this? These functions are deployed using AWS SAM. But I notice if I create my own APIs via AWS Console this happens too
The errors looks like:
I found I seem to need to add an "Empty" response model myself?
Now, I get
Add Access-Control-Allow-Origin Integration Response Header Mapping to POST method (invalid response status code specified)
How do I resolve this?
Upvotes: 41
Views: 26782
Reputation: 2696
2020 answer: Nowadays, there's an option called HTTP API when creating an API in the dashboard. For this type, I've found the CORS configuration to be much easier. If you have a working API of this type, you just have to click "CORS" under "Develop" in the sidebar, and then add '*' under Access-Control-Allow-Origin.
Upvotes: 0
Reputation: 2691
I had a CORS problem with API Gateway + Lambda and the above answers did not help me but I figured out I needed to add some headers information to my response code in my API.
I needed to add the res.statusCode
and the two headers.
// GET
// get all myModel
app.get('/models/', (req, res) => {
const query = 'SELECT * FROM MyTable'
pool.query(query, (err, results, fields) => {
//...
const models = [...results]
const response = {
data: models,
message: 'All models successfully retrieved.',
}
//****** needed to add the next 3 lines
res.statusCode = 200;
res.setHeader('content-type', 'application/json');
res.setHeader('Access-Control-Allow-Origin', '*');
res.send(response)
})
})
Upvotes: 7
Reputation: 637
Create a new model from the left menu that you will call Empty and it works
Upvotes: 19
Reputation: 8571
Firstly please select your root resource and select "Enable CORS". It will enable CORS to all methods. Ideally it should work. If in case it doesn't work Please add an empty json in the response as I have marked in the screenshot attached. I believe you don't have any default response header added in your OPTIONS method response (in Method Response ). Please refer screenshot
Upvotes: 32