Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';我不能让Cors中间件在我的Node.js应用程序中工作_Javascript_Node.js_Express_Cors - Fatal编程技术网

Javascript 我能';我不能让Cors中间件在我的Node.js应用程序中工作

Javascript 我能';我不能让Cors中间件在我的Node.js应用程序中工作,javascript,node.js,express,cors,Javascript,Node.js,Express,Cors,我正在尝试使用,但它不起作用 我遵循了文档中的简单说明,但我仍然遇到了这个可怕的错误 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost:63342因此,不允许访问。 有人能帮我吗?这是我的后端API的index.js文件,我尝试在其中实现中间件 const express = require('express'); const passport = require('passport'); const http = requ

我正在尝试使用,但它不起作用

我遵循了文档中的简单说明,但我仍然遇到了这个可怕的错误

对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost:63342因此,不允许访问。

有人能帮我吗?这是我的后端API的index.js文件,我尝试在其中实现中间件

const express = require('express');
const passport = require('passport');
const http = require('http');
const morgan = require('morgan');
const LocalStrategy = require('passport-local').Strategy;
let path = require('path');
let mongoose = require('mongoose');
let config = require('./config/config');
let bodyParser = require('body-parser');
let recipeRouter = require('./routes/recipeRouter');
let userRouter = require('./routes/userRouter');

/// Here, I required the middleware. 

let cors = require('cors');

const app = express();
// set up DB

mongoose.connect(config.mongoUrl);

let db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'));

db.once('open', function () {
    // we're connected!
    console.log("Connected correctly to server");
});





// Set up App
app.use(morgan('combined'));

/*

This is another attempt to get this to work. Tried it, but didn't work.  

app.use(function(req, res, next){

    const origin = req.get('origin');

   res.header('Access-Control-Allow-Origin', "*");

   res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE');

  /// res.header('Access-Control-Allow-Methods', true);

   res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization, Cache-Control, Pragma, x-auth');


});

*/


/// Here I try to apply the middleware. 

app.use(cors());

app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ extended: false, limit: '50mb' }));

// !! NEW !! //


app.use(express.static(path.join(__dirname, 'public')));






app.use('/users', userRouter);
app.use('/recipes',recipeRouter);


// Set up Server

const port = process.env.PORT || 3000;
const server = http.createServer(app);
server.listen(port);

有人能帮忙吗?我遗漏了什么吗?

也许既然你已经解决了问题,你应该通过分享你的解决方案来回馈你刚刚请求帮助的社区。最可能发生的情况是,
选项
调用失败,因为你的api出现了异常。因此,永远不会发送cors头,服务器会以500和no cors头响应。您能否确认在调用
OPTIONS
时您的服务器没有崩溃?也许既然您已经解决了问题,您应该通过共享解决方案来回馈您刚才请求帮助的社区。最可能发生的情况是
OPTIONS
调用失败,因为您的api出现异常。因此,永远不会发送cors头,服务器会以500和no cors头响应。您能否确认在调用
选项时服务器没有崩溃?