在使用 Swagger 开发的 NodeJS 上的 ExpressJS 框架中启用跨源资源共享 (CORS)
Enabling Cross Origin Resource sharing (CORS) in ExpressJS framework on NodeJS developed using Swagger
我在使用 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');
}
});
到目前为止,我已经尝试了以下方法并且 none 有效:
正在从 npm 导入 cors 模块:
npm 安装 cors
In app.js
var cors = require('cors');
app.all(cors())
- 使用 enable-cors 网站中给出的语句添加 CORS:
http://enable-cors.org/server_expressjs.html
我上面两种方法都失败了,接下来我可以尝试什么?如果需要,我可以分享更多代码示例。
我猜你没有正确配置 cors
。
npm install cors
用法
var cors = require('cors');
app.use(cors());
CORS 支持
https://github.com/swagger-api/swagger-ui#cors-support
我在使用 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');
}
});
到目前为止,我已经尝试了以下方法并且 none 有效:
正在从 npm 导入 cors 模块:
npm 安装 cors
In app.js
var cors = require('cors'); app.all(cors())
- 使用 enable-cors 网站中给出的语句添加 CORS: http://enable-cors.org/server_expressjs.html
我上面两种方法都失败了,接下来我可以尝试什么?如果需要,我可以分享更多代码示例。
我猜你没有正确配置 cors
。
npm install cors
用法
var cors = require('cors');
app.use(cors());
CORS 支持 https://github.com/swagger-api/swagger-ui#cors-support