Mic*_*old 2 javascript ajax jquery cross-domain
我遇到了这个代码的问题,我似乎无法让它工作.我收到此调用的典型错误是"无法加载资源:服务器响应状态为401(未授权)".
$('#btnZendesk').click(function () {
$.ajax({
url: "https://flatlandsoftware.zendesk.com/api/v2/topics/22505987.json",
type: 'GET',
crossDomain: true,
xhrFields: {
withCredentials: true
},
cache: false,
dataType: 'jsonp',
processData: false,
data: 'get=login',
timeout: 2000,
username: "test@test.com",
password: "test",
success: function (data, textStatus, response) {
alert("success");
},
error: function (data, textStatus, response) {
alert(data);
}
});
Run Code Online (Sandbox Code Playgroud)
问题是您尝试访问的资源受基本身份验证保护.
您可以beforeSend在jQuery回调中使用以添加具有身份验证详细信息的HTTP标头,例如:
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic XXXXXX");
}
Run Code Online (Sandbox Code Playgroud)
或者你可以使用jQuery来完成它 ajaxSetup
$.ajaxSetup({
headers: { 'Authorization': "Basic XXXXX" }
});
Run Code Online (Sandbox Code Playgroud)
编辑
一些指向上述功能的链接
编辑2
Authorization标头构造如下:
"username:password",结果字符串使用Base64编码例:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Run Code Online (Sandbox Code Playgroud)