我也遇到了像M.Shute这样的类似问题,但不同的是,我完全控制了我的服务器端代码。当我复制Swagger编辑器提供的Curl请求并在CMD中运行它时,它会返回我期望的值。
-X POST "http://localhost:3000/users/register" -H "accept: application/xml" -H "content-type: application/json" -d "{ \"username\": \"Tester7\", \"password\": \"Tester7\"}"
Successfully registered user!
我的API中没有任何securityDefinitions。我肯定会在快速代码中配置响应状态。
User.register(user, password, function(error, account) {
if (error) {
res.status(400).send(error);
}
else {
res.status(200).send('Successfully registered user!');
}
});
每次执行swagger测试时,控制台值都是
OPTIONS /users/register 200 4.040 ms - 4
为什么招摇使用选项方法,我该如何解决?
答案 0 :(得分:0)
Cross-origin resource sharing似乎存在一些问题。
我设置了响应的标题来弄明白。
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', 'http://petstore.swagger.io');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, PUT, PATCH, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, api_key, Authorization');
next();
});