我为此绞尽脑汁,似乎无法找到解决方案,所以请虚心寻求您的帮助。我在 chrome 上使用 reSTLet 客户端,它使用 cURL 命令从服务器获取 json。我需要将此 curl 命令转换为 AJAX,并且我将提供尽可能多的代码。你能帮我把它转换成 jQuery 的 Ajax 吗?
cURL Command:
curl -i -L -X GET \
-H "Authorization:Basic base64username:base64password" \
'https://internalserverurl'
这是我的 jQuery AJAX 方法:
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = Base64.encode(tok);
return "Basic " + hash;
}
function getData() {
$.ajax({
url: "https://internalurl",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
},
type: 'GET',
dataType: 'json',
contentType: 'application/json',
processData: false,
success: function (data) {
alert(JSON.stringify(data));
console.log(data);
},
error: function (data) {
var strBuilder = [];
for(key in data){
if (data.hasOwnProperty(key)) {
strBuilder.push(key + ":" + data[key] + "<br><br>");
}
}
alert(strBuilder.join(""));
$('#errordiv').html(strBuilder);
}
});
}
谢谢大家的帮助。
最佳答案
我在评论中说过,但您可以使用 $.ajax 函数并在 beforeSend block 中设置标题。
$.ajax({
url: 'https://internalserverurl',
type: 'GET',
dataType: 'json',
success: function() { alert('hello!'); },
error: function() { alert('boo!'); },
beforeSend: setHeader
});
});
function setHeader(xhr) {
xhr.setRequestHeader('Authorization':'Basic base64username:base64password');
}
关于javascript - cURL 到 jQuery AJAX 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310839/