2016-08-05 3 views
1

私の質問は、スワッガーファイルを取得する前に、インデックスhmtlに認証ヘッダーを追加する方法です。 基本的な認証を使用するhttp urlからswaggerファイルを取得しています。だから私はサービスを呼び出す前にユーザーとパスワードを提供する必要があります。 これで、ヘッダーを追加する場所を知る必要があります。 スワッガーUI:スワッガーファイルの基本認証

$(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

スペックが別のドメイン上にある場合は、ブラウザがCORSを決定するために、飛行前のOPTIONS要求を行います。

これはブラウザによって自動的に行われるため、このリクエストにAuthorizationヘッダーを追加する方法はありません。唯一の解決策は、仕様をホストするサーバーがOPTIONS要求の許可を必要としないように構成することです。