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)