Swagger 大摇大摆的用户界面——” ;TypeError:无法获取“文件”;论有效回答
我刚刚使用:从Git repo(3.0.19)中删除了最新的招摇,并更新了API以使用新版本 运行Swagger 大摇大摆的用户界面——” ;TypeError:无法获取“文件”;论有效回答,swagger,swagger-ui,swagger-2.0,Swagger,Swagger Ui,Swagger 2.0,我刚刚使用:从Git repo(3.0.19)中删除了最新的招摇,并更新了API以使用新版本 运行git description--tags进行确认,我的版本当前为:v3.0.19-6-gaab1403 我遇到的问题是一个描述的问题,我的回答是403(我可以在浏览器的inspector中看到),尽管我对错误403有一个响应,但我仍然得到TypeError:Failed to fetch消息 以下是我定义中关于403响应的一个片段: "403": {
git description--tags
进行确认,我的版本当前为:v3.0.19-6-gaab1403
我遇到的问题是一个描述的问题,我的回答是403(我可以在浏览器的inspector中看到),尽管我对错误403有一个响应,但我仍然得到TypeError:Failed to fetch
消息
以下是我定义中关于403响应的一个片段:
"403": {
"description": "Forbidden",
"headers": {
"Access-Control-Allow-Origin": {
"type": "string"
}
}
},
我也注意到它报告了,但是,我知道这不是CORS问题,因为我已经测试了端点,并且选项返回正确,如果使用有效信息调用端点,也会返回正确的选项(我强制403)
谁能给我指一下正确的方向吗
更新:此后,我对401响应进行了测试,得到了相同的响应
而且400的工作状态与预期一致:
对于遇到此问题的任何人 经过一天的故障排除和大摇大摆的支持人员为我指出了正确的方向,结果证明这是由AWS API网关自定义授权程序中的一个错误造成的 我们目前正在使用AWS API网关来管理我们的API,这包括通过自定义授权程序管理我们的所有授权。问题在于,自定义授权人当前不支持在响应中传递头,而Swagger UI需要在响应头中使用
访问控制允许源代码:
,以显示正确的HTTP状态代码
有关此问题,请参阅此AWS线程(已超过一年):
在同一平台上进行的大摇大摆的用户界面讨论:
编辑/更新
这已通过使用网关响应得到解决。请参见同一论坛(第2页):
因为交叉源问题意味着您的网站托管在本地或8000端口或其他端口上,而您的swagger的端口号不同,所以这个问题是真实的。我们可以通过给予许可来解决它 以下是节点代码:
app.use( (request, response, next) => {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
我们也可以使用CORS npm来解决这个问题。
我在本地开发过程中遇到了这个错误(即,与AWS无关)。根本原因(违反CORS)是相同的。以下内容可能会帮助遇到此问题的其他人 我使用引用的openapi规范进行了设置。当开发服务器启动时,它会显示“正在运行”。该页面似乎正常工作,但swagger ui使用openapi规范中的内容进行后续请求,并在结果中显示
TypeError:Failed to fetch
。浏览器控制台显示获取的访问权限'http://localhost:9090/vr/variation“起源”http://0.0.0.0:9090“
。提供的curl
命令运行良好;尽管一开始令人困惑,但curl的成功表明问题是由于浏览器阻塞而不是服务器端故障造成的
(Connexion基于Python flask并为openapi集成提供扩展支持。)免责声明:-此答案适用于使用Asp.net核心开发的API 在尝试从Swagger UI编辑器访问API时,我遇到了类似的问题。 我试图访问一些使用Asp.NETCore开发的API,其中SwiggerUI编辑器托管在Apache上。我面对的是CORS(跨Orgin请求) 我必须修改API代码,以允许使用以下代码进行CORS请求:- 在Startup.cs文件中声明类为“StartupShutdownHandler” 在ConfigureServices方法中添加了一段代码
var str = ConfigurationHandler.GetSection<string>(StringConstants.AppSettingsKeys.CORSWhitelistedURL);
if (!string.IsNullOrEmpty(str))
{
services.AddCors(options =>
{
options.AddPolicy(MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins(str);
});
});
}
参考请检查为swagger jsdoc提供的swagger选项,并检查主机名和基名称是否正确。我以前遇到过相同的问题,并通过更正此问题解决了该问题。希望这也能解决问题 例如:
这是因为有时IIS绑定的HTTPS SSL证书将自动转到“未选择”。因此,您必须再次手动选择SSL证书到1 IIS Express开发证书1。下面我已经提到了如何做:
SSL证书
=未选择
请选择IIS Express开发证书问题将得到解决。我在尝试验证访问OAuth2安全Rest API集时遇到了相同的错误。API服务器部署在VM上,并使用IPSEC VPN连接到它。实际上,HTTP头中带有基本身份验证的用户名/密码是使用单独的API(而不是/oauth/token)发送的,后端本身使用客户机密码进行调用,并将令牌返回给客户机。将localhost更改为服务器的实际本地IP后,问题消失了 这个错误在招摇过市方面是常见的,可能是由许多可能的原因造成的。
在我的情况下,这是由于连接错误。由于我身边的连接问题,我的招摇过市页面没有响应。我必须刷新它一次并为我工作。每个解决方案都肯定是正确的:) 但就我而言,我的网络配置文件中有这一行
<environmentVariable name="ASPNETCORE_HTTPS_PORT" value="5001" />
我只是将ASPNETCORE\u HTTPS\u端口替换为ASPNETCORE\u HTTP\u端口,错误已经消失:)。最后一行是
<environmentVariable name="ASPNETCORE_HTTP_PORT" value="5001" />
用您的端口替换5001。我也遇到了同样的问题,并且有一个非常简单的修复方法。我使用HTTP访问我的站点,但它需要HTTPS。调用端点时,我的站点正在重定向到HTTPS
const options = {
swagger: "2.0",
swaggerDefinition: {
// options.swaggerDefinition could be also options.definition
info: {
title: "Customer API", // Title (required)
description: "Dummy Customer API for implementing swagger",
contact: {
name: "Stack Overflow"
},
version: "1.0.0" // Version (required)
},
host: "localhost:5000",
basePath: "/"
},
// Path to the API docs
apis: ["SwaggerImplementation/index.js"] // For complex api's pass something like apis: ["./routes/*.js"]
};
<environmentVariable name="ASPNETCORE_HTTPS_PORT" value="5001" />
<environmentVariable name="ASPNETCORE_HTTP_PORT" value="5001" />