How to set the headers in a lambda function in order to allows call from the browser

Posted on October 16, 2022

Here the setting I use in my Netlify functions when I need to let the browse call them:

// headers.js

module.exports = {
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Headers': 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers',
  'Access-Control-Allow-Methods': 'GET,POST,OPTIONS',
  'Content-Type': 'application/json',
  'Content-Disposition': 'inline'
}

I can change the Access-Control-Allow-Origin with a specific domain if I want to limit the call from within that domain.

Here the lambda function:

// index.js
const headers = require('./headers')

exports.handler = async (event, context) => {
  return {
    statusCode: 200,
    headers,
    body: 'OK'
  }
}