Yah*_*iya 10 swagger swagger-ui swagger-2.0
有人可以告诉我为什么会出现这些错误。
\n\n GET http://127.0.0.1:9000/api-docs/service.json\n\n 200 OK 4ms swagger-ui.js (line 30261)\n Unable to Load SwaggerUI /api-docs/ (line 83)\n Cross-Origin Request Blocked: The Same Origin Policy disallows \n reading the remote resource at http://127.0.0.1:9000/api-\n docs/service.json. This can be fixed by moving the resource to the \n same domain or enabling CORS.\n uncaught exception: Can\'t read from server. It may not have the \n appropriate access-control-origin settings.\nRun Code Online (Sandbox Code Playgroud)\n\n我正在尝试在端口 9090 上运行 Swagger UI,在 9000 上运行 Swagger API 文档,并尝试在 UI 中显示文档。
\n\n我已在 API 文档服务器(端口 9000)上添加了 CORS 过滤器,如下所示。
\n\n FilterHolder cors = swaggerUIContext.addFilter(CrossOriginFilter.class,"/*",EnumSet.of(DispatcherTyp\xe2\x80\x8c e.REQUEST)); \ncors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*"); \ncors.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, ""); \ncors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,POST,HEAD"); \n cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "Content-Type, api_key, Authorization"); \nRun Code Online (Sandbox Code Playgroud)\n\nfirefox V33.0 中的请求和响应标头是
\n\n Response Headers\n Content-Length 428\n Content-Type application/json\n\n Request Headers\n Accept application/json;charset=utf-8,*/*\n Accept-Encoding gzip, deflate\n Accept-Language en-US,en;q=0.5\n Connection keep-alive\n Host localhost:9000\n Origin http://localhost:9090\n Referer http://localhost:9090/api-docs/\n User-Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) \n Gecko/20100101 Firefox/33.0\nRun Code Online (Sandbox Code Playgroud)\n\n这是我在服务器上设置 CORS 的方法
\n\n final ResourceHandler swaggerUIResourceHandler = new ResourceHandler();\n swaggerUIResourceHandler.setResourceBase("target/classes/api-docs");\n final ServletContextHandler swaggerUIContext = new ServletContextHandler();\n swaggerUIContext.setContextPath("/api-docs");\n swaggerUIContext.setHandler(swaggerUIResourceHandler);\n\n FilterHolder cors = swaggerUIContext.addFilter(CrossOriginFilter.class,"/*",EnumSet.of(DispatcherType.REQUEST));\n cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");\n cors.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, "*");\n cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,POST,HEAD");\n cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "Content-Type, api_key, Authorization");\n\n ServletHolder def = new ServletHolder("default", DefaultServlet.class);\n def.setInitParameter("resourceBase","./http/");\n def.setInitParameter("dirAllowed","false");\n swaggerUIContext.addServlet(def,"/");\n\n HandlerList handlers = new HandlerList();\n\nhandlers.setHandlers(new Handler[] { swaggerUIContext, new DefaultHandler() });\nserver.setHandler(handlers);\nRun Code Online (Sandbox Code Playgroud)\n
我刚刚遇到类似的问题:Swagger UI: HTTP Content-type "application/json" Causes "Unable to Load SwaggerUI"。
尝试将 GET service.json 响应的 HTTP Content-type 标头从“application/json”更改为“text/html”,甚至将其删除。我不知道为什么,但它似乎对Swagger UI产生了影响。
| 归档时间: |
|
| 查看次数: |
74144 次 |
| 最近记录: |