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方法)。