< Express

Express - Cors

Szerző: Sallai András

Copyright © 2023, Sallai András

Szerkesztve: 2024, 2025

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Szerver

const Router = require('express') const router = new Router() router.get('/msg', (req, res) => { res.json({msg: 'mehet'}) }) module.exports = router
const express = require('express') const router = require('./routes') const app = express() app.use(express.json()) app.use('/',router) PORT = process.env.PORT || 8000 app.listen(PORT, () => { console.log(`Listening: ${PORT}`) })

Készítsünk klienst

<html> <script src="app.js"></script> </html>
fetch('http://localhost:8000/msg') .then((res) => res.json()) .then((data) => console.log(data))

Futtassuk szerveren, például lite-server.

{ "server": ["src"] }

pnpm install lite-server

Ha Insomnia, Postman, HTTPie vagy curl segítségével nézem meg az API-t nincs probléma.

Ha készítek egy weblapot, ami a kliensként fog működni, és az egy másik szerveren futtatom, például a lite-serveren, akkor ez nem fog működni. A Cors beállításokra panaszkodik.

A cors beállítása

pnpm install cors

const cors = require('cors') app.use(cors())

Ezzel a beállítással már működik.

Szabályozhatjuk honnan engedélyezzük. Egy teljesebb kóddal:

const express = require('express') const router = require('./routes') const app = express() const cors = require('cors') var corsOptions = { origin: 'http://192.168.10.109:8000' } app.use(cors(corsOptions)) app.use(express.json()) app.use('/',router) PORT = process.env.PORT || 8000 app.listen(PORT, () => { console.log(`Listening: ${PORT}`) })

Linkek

Lásd még:

https://expressjs.com/en/resources/middleware/cors.html (2025)