我在使用 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');
}
});
到目前为止,我已经尝试了以下方法,但都没有奏效:
从 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
关于node.js - 在使用 Swagger 开发的 NodeJS 上的 ExpressJS 框架中启用跨源资源共享 (CORS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39071430/