DEV Community

Cover image for How to set multiple headers on nodejs express server response
Ifeanyi Chima
Ifeanyi Chima

Posted on Edited on

How to set multiple headers on nodejs express server response

Let me start by saying, I respect Dave Gray a lot, he is the greatest Youtube tech creator out there. I really admire his method of project-based learning.

BMC

This tutorial is in reference to his nodejs_tutorial where he creates a REST API.

One day, I was working on a MERN stack application, as part of a side-project, and I kept on getting this error.

cors error

After some research, I came up with a solution.

When working with Node.js, you need to set the headers on the servers response.


// middleware/credentials.js


const allowedOrigins = require("../config/allowedOrigins");

const credentials = (req, res, next) => {
    const origin = req.headers.origin;
    if (allowedOrigins.includes(origin)) {
        res.set({
            "Access-Control-Allow-Origin": origin, // ==> new header
            "Access-Control-Allow-Credentials": true
        })
    }
    next();
}

module.exports = credentials

Enter fullscreen mode Exit fullscreen mode

The error is caused because the header Access-Control-Allow-Origin was not present. This header allows the origin (host) that made the request to be able to access the servers' resources.

The second header Access-Control-Allow-Credentials is used whenever a request is made with cookies to the server.

I learnt how to set multiple headers from this post

Reference

difference between setHeader and header

Summary

I tried to show you how to set multiple headers on the server's response.

Thank You

Follow me on twitter, github and linkedin

Buy Me A Coffee

Top comments (0)