我在使用Swagger生成的localhost上托管了一个nodejs服务器,并且我尝试使用再次托管在localhost上的Swagger UI对其进行API调用。 Chrome中的网络配置文件在我每次拨打电话时都显示连接被拒绝,因为CORS标头未添加到请求中。
这是我使用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 install cors
在app.js
var cors = require('cors'); app.all(cors())
上述两种方法都失败了,我接下来可以尝试什么?如果需要,我可以共享更多代码示例。
答案 0 :(得分:3)
我猜你没有正确配置cors
。
npm install cors
用法
var cors = require('cors');
app.use(cors());
CORS支持 https://github.com/swagger-api/swagger-ui#cors-support