我正在尝试调用从SharePoint页面上呈现的JavaScript使用基本身份验证的REST服务。对于基本身份验证,它应使用用户登录到sharepoint的凭据。
我尝试使用withCredentials = true
执行此操作,但它不起作用,REST服务不会从调用中收到任何凭据。
jQuery.support.cors = true;
jQuery.ajax({
url: "https://myurl?and=parameters",
crossDomain: true,
processData: false,
type: "GET",
dataType: "json",
data: {},
beforeSend: function (xhr) {
xhr.withCredentials = true;
},
success: function (data, textStatus, jqXHR) {
alert("Success");
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus + ": " + jqXHR.status + " / " + jqXHR.responseText + " / " + errorThrown);
}
});
(jQuery是jQuery 1.7.2的句柄)
还有其他办法吗?我错过了什么?
编辑:我在IE和Firefox中有不同的行为,我用了一个 嗅探器检查发生了什么:IE - 浏览器甚至没有尝试发送请求或预检...... JavaScript跳转到错误函数,说“访问被拒绝”,甚至没有尝试。
Firefox - 浏览器发送经过身份验证的请求,服务器会使用正确的用户接收并回答。客户端收到一个带有数据的OK 200结果......但是:然后JavaScript进入错误函数,只是说“错误”(状态0)。