【问题标题】:Can't read swagger JSON from http://localhost:9000/api-docs/无法从 http://localhost:9000/api-docs/ 读取 swagger JSON
【发布时间】:2014-06-08 18:36:52
【问题描述】:

api-docs 早些时候运行良好。它停止工作,现在我得到了

Can't read swagger JSON from http://localhost:9000/api-docs/

如果我更改 src/main/webapp/swagger-ui/index.html

var apiUrl = "http://localhost:8080/swagger-ui/index.html";

我收到“无法从服务器读取。它可能没有适当的访问控制源设置。”

【问题讨论】:

    标签: jhipster swagger-ui


    【解决方案1】:

    我遇到了同样的问题,发现生成的类有包com.mycompany.myapp.config.apidoc,但它们实际上在com.mycompany.myapp.apidoc下。

    您可以通过将 java 文件移动到正确的包 com.mycompany.myapp.config.apidoc 来解决此问题。

    【讨论】:

    • 我也必须这样做,因为我遇到了 Java 编译错误。移至 config.apidoc 后,我遇到了同样的错误。
    【解决方案2】:

    通过更改 gruntfile.js 以在连接/代理部分包含以下行来查看 Jerome 对 https://github.com/jhipster/generator-jhipster/issues/277 的修复

    ,{
    context: '/api-docs',
    host: 'localhost',
    port: 8080,
    https: false,
    changeOrigin: false
    }
    

    【讨论】:

    • 我也有这个问题,但我什至不使用 gruntfile.js。 : /
    【解决方案3】:

    为此,您必须启用 CORS,只需将这 3 个 res.header 行添加到您的 API 中,然后当您访问该 API 时将启用 CORS,这样您就不会收到访问控制来源设置等错误。

    app.get('/swaggerJson', function(req, res){  
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With");
      res.header("Access-Control-Allow-Methods", "GET, PUT, POST, OPTIONS");      
      res.json(swaggerJSON);
    });

    希望对你有所帮助..

    【讨论】:

    • 我不认为你想让它成为一个可运行的 sn-p,因为它不运行
    • 我还没有编写完整的代码,所以它会给出错误。“无法从服务器读取。它可能没有适当的访问控制源设置。”这主要是因为 CORS 解决此问题必须添加标头以启用访问控制源设置到您的 api...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 2014-09-26
    相关资源
    最近更新 更多