I am working on a MEAN-STACK application.Using Mean-cli packgae of node. in which i am using darksky weather API, in package name Information. I have 4 other packages in custom folder of mean app. how did i enable the CORS so that all API request did not fail and return the response.
i googled and find out that i have to add this middleware.
//CORS middleware
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'example.com');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
where should i add this. in each package where we are using cross-origin request or in some global file.
I have tried to add this middleware in server -route file of ? Information package and in express.js file of confile but it didn't work.
So the actual solution to your issue turned out to be using jsonp
callback with forecast.io api as they haven't enabled CORS headers for client access. Use $http.jsonp
like this
$http.jsonp(url + lat + ',' + lng + '?callback=JSON_CALLBACK');
In general to enable CORS on your expressjs server do the following.
npm install cors
var cors = require('cors');
app.use(cors());
cors
module will automatically add all aors related headers on the response. Alternately you could also configure a lot of options. Check the official docs
OR
If you want to do it yourself you could do the following
var permitCrossDomainRequests = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
// some browsers send a pre-flight OPTIONS request to check if CORS is enabled so you have to also respond to that
if ('OPTIONS' === req.method) {
res.send(200);
}
else {
next();
}
};
then Enable your CORS middleware
app.use(permitCrossDomainRequests);
Enable routes at the end
app.use(app.router);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With