2017-02-03 15 views
0

Webサービスを呼び出そうとしていますが、認証エラーが発生します。これはクロスオリジン要求です。私はクロスオリジンの要求を管理するために 'withcredentials'属性を設定しました。しかし、私はまだ同じエラーが発生しています。Javascript HTTPリクエスト認証エラー

SOAPClient._loadWsdl = function(url, method, parameters, async, callback) 
{ 

var wsdl = SOAPClient_cacheWsdl[url]; 
if (wsdl + "" != "" && wsdl + "" != "undefined") 
    return SOAPClient._sendSoapRequest(url, method, parameters, async, callback, wsdl); 
var xmlHttp = SOAPClient._getXmlHttp(); 
if (SOAPClient.username && SOAPClient.password) { 
    xmlHttp.open("GET", url + "?wsdl", async, SOAPClient.username, SOAPClient.password); 
    var auth = "Basic " + SOAPClient._toBase64(SOAPClient.username + ":" + SOAPClient.password); 

    xmlHttp.withCredentials = true; 
    //xmlHttp.setRequestHeader('Access-Control-Allow-Origin', 'www.website.com'); 
    xmlHttp.setRequestHeader('Authorization', auth); 
} else { 
    xmlHttp.open("GET", url + "?wsdl", async); 
} 
if (async) { 
    xmlHttp.onreadystatechange = function() { 
     alert(xmlHttp.readyState); 
     if (xmlHttp.readyState == 4) 
      SOAPClient._onLoadWsdl(url, method, parameters, async, callback, xmlHttp); 
    } 
} 

xmlHttp.send(null); 
if (!async) `enter code here` 
return SOAPClient._onLoadWsdl(url, method, parameters, async, callback, xmlHttp); 

}

+0

現在の問題文を拡張することができますか? 「私は間違っていますか」というのは少し曖昧です。あなたが何を期待しているのか、何が実際に起こっているのか、何かエラーが出てきたことを説明してください。 – evolutionxbox

+0

リクエストを行うと401エラーが表示されます。私はwithcredentials属性を設定しましたが、エラーは表示されません。 – SUPERGIRL

+0

(あなたは質問を編集できますか?) – evolutionxbox

答えて

0

私は、これはあなたがCORS要求を行うことができませんブラウザの制限によるものであると思います。これを可能にするには、ヘッダーをリモートサーバーに設定する必要があり、制御しないように聞こえます。

他のドメインから必要な結果を取得し、許可されたドメインからユーザーに中継するサーバーのプロキシをページのドメインに作成します。

WDSLサーバーのURLを送信して、他の人がそれを消費できるかどうかを確認できます。

p.s.

&& wsdl + "" != "undefined") 

あなたは常に空の文字列を連結しているので、これは未定義に評価することはありません。

関連する問題