2016-08-05 3 views
1

Мой вопрос: как добавить заголовок авторизации в свой индекс hmtl, прежде чем получить файл swagger. Я получаю файл swagger с http-url, который использует базовый auth. Поэтому перед вызовом службы мне необходимо предоставить пользователю и пароль. Итак, теперь мне нужно знать, где я добавляю заголовок. Интерфейс Swagger: базовый auth для файла swagger

$(function() { 
 
     var url = window.location.search.match(/[?]url=([^&]+)/); 
 
     if (url && url.length > 1) { 
 
     url = decodeURIComponent(url[1]); 
 
     } else { 
 
     url = "test.json"; 
 
     } 
 
     
 

 
     hljs.configure({ 
 
     highlightSizeThreshold: 5000 
 
     }); 
 

 
     // Pre load translate... 
 
     if(window.SwaggerTranslator) { 
 
     window.SwaggerTranslator.translate(); 
 
     } 
 
     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", 
 
       clientSecret: "your-client-secret-if-required", 
 
       realm: "your-realms", 
 
       appName: "your-app-name", 
 
       scopeSeparator: ",", 
 
       additionalQueryStringParams: {} 
 
      }); 
 
      } 
 

 
      if(window.SwaggerTranslator) { 
 
      window.SwaggerTranslator.translate(); 
 
      } 
 
     }, 
 
     onFailure: function(data) { 
 
      log("Unable to Load SwaggerUI"); 
 
     }, 
 
     docExpansion: "none", 
 
     jsonEditor: false, 
 
     defaultModelRendering: 'schema', 
 
     showRequestHeaders: false 
 
     }); 
 

 
     window.swaggerUi.load(); 
 

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

ответ

0

Если спецификация находится на другом домене, то браузер будет делать запрос предполетной OPTIONS, чтобы определить CORS.

К сожалению, это делается автоматически браузером, поэтому нет возможности добавить заголовок авторизации в этот запрос. Единственное решение - настроить сервер, на котором размещается спецификация, чтобы не требовать авторизацию для запросов OPTIONS.

Смежные вопросы