I'm using json-server to create a mock API of my actual API for offline testing purpose.
I can see the mock API response under their Url endpoint:
localhost:5001/api/searchresults/*
but on my app I cannot see the results because the request is blocked by CORS.
Reading the json-server docu, there is a way to disable CORS issues, adding jsonServer.defaults({ noCors: true })
as middleware.
I than add a custom server and run this with node server.js
// server.js
const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults({ noCors: true })
server.use(middlewares)
server.use('/api/searchresults', router)
server.listen(5001, () => {
console.log('Mock api server listening at localhost:5001')
})
but unfortunately I still get cors issues when try to fetch my data.
Anyone has an idea why is not working or how to address this problem?
Here is the full project: https://github.com/ElliotForWater/efw-webapp
Since it seems that the json-server package is not mantained anymore https://github.com/typicode/json-server/issues/1219 I figured out a way to fix it with just Express
server.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', 'http://localhost:3000')
res.header('Access-Control-Allow-Headers', '*')
next()
})
Adding those lines worked for us I hope can be helpful for someone else in similar situation