node.js - 在使用 Swagger 开发的 NodeJS 上的 ExpressJS 框架中启用跨源资源共享 (CORS)

标签 node.js express cors swagger swagger-ui

我在使用 Swagger 生成的本地主机上托管了一个 nodejs 服务器,我正尝试再次使用在本地主机上托管的 Swagger UI 对其进行 API 调用。每次我打电话时,chrome 中的网络配置文件都显示连接被拒绝,因为 CORS header 未添加到请求中。

这是我使用 Swagger 生成的 app.js 文件:

'use strict';

var SwaggerExpress = require('swagger-express-mw');

var app = require('express')();
module.exports = app; // for testing

var config = {
  appRoot: __dirname // required config
};


SwaggerExpress.create(config, function(err, swaggerExpress) {
    if (err) { throw err; }

  // install middleware

  swaggerExpress.register(app);
  var port = process.env.PORT || 10010;
  app.listen(port);

  if (swaggerExpress.runner.swagger.paths['/hello']) {
    console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott');
  }
});

到目前为止,我已经尝试了以下方法,但都没有奏效:

  1. 从 npm 导入 cors 模块:

    npm 安装 cors

In app.js

var cors = require('cors');

app.all(cors())
  1. 使用 enable-cors 网站中给出的语句添加 CORS: http://enable-cors.org/server_expressjs.html

以上两种方法对我来说都失败了,接下来我可以尝试什么?如果需要,我可以分享更多代码示例。

最佳答案

我猜你没有正确配置 cors

npm install cors

用法

var cors = require('cors');

app.use(cors());

See more

CORS 支持 https://github.com/swagger-api/swagger-ui#cors-support

关于node.js - 在使用 Swagger 开发的 NodeJS 上的 ExpressJS 框架中启用跨源资源共享 (CORS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39071430/

相关文章:

javascript - 使用 Webpack 将 JavaScript 模块添加到 ASP.NET MVC 应用程序

ruby-on-rails - Apollo 和 GraphQL CORS

asp.net - 让集成安全性和 CORS 与 Asp.Net、Angular 6 和 IIS 配合使用

javascript - Marketo munchkin.js 调用间歇性地没有返回任何响应。 (CORS)

javascript - req.body.Dates 未定义

node.js - swagger-express-mw 中的错误处理

javascript - 在 Javascript/Node.Js 中按二维数组中的对象属性排序

node.js - Node http-proxy 和 express

javascript - NodeJs + ExpressJS : router level middleware not able to take the request

mysql - 日期范围之间的 Sequelize 始终返回今天的日期而不是记录中的日期