3

當我使用Internet Explorer調用任何Sharepoint Web服務時,瀏覽器向我索要證書......但是當我使用Firefox或Chrome I時獲得「401未授權」錯誤。JQUERY AJAX - 如何將證書(用戶和密碼)傳遞給Sharepoint Web服務

我正在寫一個Firefox擴展,所以我需要知道如何通過使用JQuery憑據....

$.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時的狀態碼= 0:在使用Firefox的jQuery $ ajax調用中{withCredentials:true}](http://stackoverflow.com/questions/11269362/status-code-0-when-using -xhrfields -withcredentials-true-in-jquery-ajax) – 2014-09-22 23:28:11

+1

你正在做跨域查詢,這就是爲什麼。 Firefox具有安全性,爲了讓它允許,在IIS中的服務器上應該啓用跨域設置,啓用IIS7上的跨源資源共享。 如果要訪問來自不同Sharepoint應用程序的列表數據,其他方式是使用搜索。 – Nikunj 2014-10-09 18:10:29

回答

-1

您應該能夠通過使用像這樣通過用戶名/密碼:

$.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進行必要的更改以允許跨域調用。

相關問題