3

Internet Explorerを使用してSharepoint Webサービスを呼び出すと、ブラウザから資格情報が要求されますが、FirefoxまたはChromeを使用している場合「401 Unauthorized」エラーが表示されます。JQUERY AJAX - 資格情報(ユーザーとパスワード)をSharepoint Webserviceに渡す方法

あなたはこのようなものを使用して、ユーザー名/パスワードを渡すことができるはずです....

$.ajax({ 
    url: "http://sharepoint.xxxx.com/_vti_bin/search.asmx", 
    type: "POST", 
    dataType: "xml", 
    data: soapEnv, 
    complete: processResult, 
    contentType: "text/xml; charset=utf-8" 
}); 

    $.ajax({ 
     url: "http://sharepoint.xxxx.com/_vti_bin/lists.asmx", 
     beforeSend: function(xhr) { 
      xhr.setRequestHeader("SOAPAction", 
      "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"); 
     }, 
     type: "POST", 
     dataType: "xml", 
     data: soapEnv, 
     complete: processResult, 
     contentType: "text/xml; charset=utf-8" 
    }); 
+0

xhrFields:{withCredentials:true}を使用すると[ステータスコード= 0]の重複が発生する可能性があります(jQuery $ ajaxでFirefoxを呼び出す場合)] http://stackoverflow.com/questions/11269362/status-code-0-when-using -xhrfields-withcredentials-true-in-jquery-ajax) –

+1

あなたはその理由のクロスドメインクエリを行っています。 Firefoxは、IISのクロスドメイン設定を有効にして、IIS7上のクロスオリジンリソース共有を有効にするように、IISのサーバーでセキュリティを許可します。 異なるSharepointアプリケーションからリストデータにアクセスする場合は、検索を使用します。 – Nikunj

答えて

-1

を私はFirefoxの拡張機能を書いているので、私はjQueryのを使用して資格情報を渡す方法を知っておく必要があります。

$.ajax({ 
    url: "http://sharepoint.xxxx.com/_vti_bin/search.asmx", 
    type: "POST", 
    xhrFields: { 
     withCredentials: true 
    }, 
    dataType: "xml", 
    data: soapEnv, 
    complete: processResult, 
    contentType: "text/xml; charset=utf-8" 
    username: username, 
    password: password, 
    crossDomain: true 
}); 

この呼び出し、xhrFields withCredentials: trueを使用して、ユーザー名とパスワードを渡すことは、あなたは、コールの残りの部分と、これらのアイテムを送信することができます。また、crossDomain: trueは、jQueryにクロスドメインコールを許可するために必要な変更を行うよう指示することに注意してください。

+0

JavaScriptでユーザー名とパスワードを渡すのはなぜですか? –

+0

ビジェイの質問に関しては、AJAXのみのサービスを使用する場合、ユーザー/パスワードの投稿が必要な場合があります。明らかに、プレーンテキストの投稿は、SSLを使用していない限り避けるべきです。それでも、ブラウザの暗号化/ハッシュ化されたパスワードを送信して別のセキュリティ層を提供することは良い考えです。 – imelgrat

関連する問題