如何在Swagger-UI 3.0版中为每个请求添加自定义标头

问题描述 投票:0回答:1

我想在我的swagger-ui 3.0版中支持多个json版本。我要添加自定义标头的每个ajax调用中的第二个json名称为x-api-version,值2

我尝试过这个:

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'some value');
    }
});

但是它不起作用。swagger ui 3.0.0的文档很差,我找不到解决方法

swagger swagger-ui
1个回答
0
投票

经过一些试验,如果Swagger使用jquery处理OPTIONS请求,而使用superagent客户端HTTP请求库处理其他类型的请求,例如GET,POST等...

因此,要为Swagger-UI中的每个请求添加自定义标头,请使用以下代码:

    $(document).ready(function () {

    // Intercept jquery ajax request
    $.ajaxSetup({

        beforeSend: function (xhr, settings) {

            // Add the header to the Ajax request
            xhr.setRequestHeader("Authorization", getHeader());
        },

        // Disable caching of AJAX responses
        cache: false

    });

    // Intercept superagent request
    window.swaggerUi.options["requestInterceptor"] = function () {

        // Add the header to the request
        this.headers.Authorization = getHeader();

        return this;
    };

});

function getHeader() {

    var header = ... some code to calculate or generate a header ...

    return header
}
© www.soinside.com 2019 - 2024. All rights reserved.