2015-06-29 72 views
1

我在嘗試安裝Swagger> = 2.0,但我無法用單個請求發送很多頭文件。這是我的index.html的js代碼:用Swagger發送多個頭文件

$(function() { 
    var url = window.location.search.match(/url=([^&]+)/); 
    if (url && url.length > 1) { 
    url = decodeURIComponent(url[1]); 
    } else { 
    url = "http://localhost:9033/api/swagger.json"; 
    } 
    window.swaggerUi = new SwaggerUi({ 
    url: url, 
    dom_id: "swagger-ui-container", 
    supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], 
    onComplete: function(swaggerApi, swaggerUi){ 
     if(typeof initOAuth == "function") { 
     initOAuth({ 
      clientId: "your-client-id", 
      realm: "your-realms", 
      appName: "your-app-name" 
     }); 
     } 

     $('pre code').each(function(i, e) { 
     hljs.highlightBlock(e) 
     }); 

     addApiKeyAuthorization(); 
    }, 
    onFailure: function(data) { 
     log("Unable to Load SwaggerUI"); 
    }, 
    docExpansion: "none", 
    apisSorter: "alpha", 
    showRequestHeaders: true 
    }); 

    function addApiKeyAuthorization(){ 
    var key = encodeURIComponent($('#input_apiKey')[0].value); 
    if(key && key.trim() != "") { 
     window.swaggerUi.api.clientAuthorizations.add("X-My-Header", new SwaggerClient.ApiKeyAuthorization("X-My-Header", "test value", "header")); 
     window.swaggerUi.api.clientAuthorizations.add("Authorization", new SwaggerClient.ApiKeyAuthorization("Authorization", key, "header")); 
     log("added key " + key); 
    } 
    } 

    $('#input_apiKey').change(addApiKeyAuthorization); 

    // if you have an apiKey you would like to pre-populate on the page for demonstration purposes... 
    /* 
    var apiKey = "myApiKeyXXXX123456789"; 
    $('#input_apiKey').val(apiKey); 
    */ 

    window.swaggerUi.load(); 

    function log() { 
    if ('console' in window) { 
     console.log.apply(console, arguments); 
    } 
    } 

正如你可以看到我添加了兩個頭,但只有第一個與請求一起發送。如果我反轉他們,那麼另一個將被髮送,但我從來沒有設法發送兩個。文檔非常簡單,並說:

注意!您可以在一個請求上傳遞多個頭文件參數,只需使用它們的唯一名稱(密鑰用於上例)。

爲了清楚起見,兩個頭都加入到Access-Control-Allow-Headers中,並且兩者都可以單獨由服務器接收,情況是我無法將它們發送到一起。

問題: 有誰知道如何處理?

(還有一個重要的假設,這些頭文件對我所有的API都是全局的,所以我想直接把它們放在swagger UI中而不是記錄每個API方法)。

回答