跨域请求阻止的MEAN堆栈应用程序

时间:2019-06-20 20:28:26

标签: node.js express cors cross-origin-read-blocking

我在前端有一个用于简单寄存器功能的MEAN堆栈应用程序。尝试注册用户时出现以下错误。

  

跨域请求被阻止:“同源起源”策略禁止读取http://localhost:8080/api/signup处的远程资源。 (原因:CORS请求失败)。

我的app.js文件在服务器端如下。

var express = require('express');
var bodyparser = require('body-parser');
var mongo = require('mongoose');
var cors = require('cors');

var app = express();

//CORS Middleware
app.use(function (req, res, next) {
  //Enabling CORS
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, x-client-key, x-client-token, x-client-secret, Authorization");
  next();
});

const appRouter = require('./router/router');


var db = mongo.connect('mongodb://localhost:27017/theme-alpha-new', { useNewUrlParser: true }, function(err,res){
    if(err) {console.log(err);}
  else {
      console.log('connected to ' + db + ' + ' + res);
    }
});
app.use(bodyparser);
app.use(bodyparser.json({limit: '5mb'}));
//app.options('*', cors());
//app.use(cors());
app.use(bodyparser.urlencoded({extended: true}));

app.use('/api', appRouter);

function errorHandler(err, req, res, next) {
  if (typeof (err) === 'string') {
    return res.status(400).json({ message: err });
  }

  if (err.name === 'ValidationError') {
    return res.status(400).json({ message: err.message });
  }

  if (err.name === 'UnauthorizedError') {
    return res.status(401).json({ message: 'Invalid Token' });
  }
  return res.status(500).json({ message: err.message });
}
module.exports = errorHandler;

app.listen('8081', function(){
  console.log('Theme-alpha-new listening on port 8081');
});

我在终端中以“ ng服务”方式运行前端。我在Ubuntu中使用FireFox 40.0.3版本

0 个答案:

没有答案