Javascript 在ajax json脚本中添加基本http授权
不确定如何在ajax调用中为JSON信息添加身份验证。我试图按照给出的例子来检查域名的可用性,但是它一直在做一个http表单弹出窗口,询问用户名和密码 我认为我的代码中的所有内容都是正确的:Javascript 在ajax json脚本中添加基本http授权,javascript,ajax,json,basic-authentication,Javascript,Ajax,Json,Basic Authentication,不确定如何在ajax调用中为JSON信息添加身份验证。我试图按照给出的例子来检查域名的可用性,但是它一直在做一个http表单弹出窗口,询问用户名和密码 我认为我的代码中的所有内容都是正确的: function domainAvailabilityCheck(domain) { $.ajax({ type: 'GET', url: 'http://api.domainapi.com/v1/availability/'+domain+'.com',
function domainAvailabilityCheck(domain) {
$.ajax({
type: 'GET',
url: 'http://api.domainapi.com/v1/availability/'+domain+'.com',
beforeSend: setHeader,
success: function(spitback) {
console.log(spitback.content.domainList.status);
},
dataType:'jsonp'
});
}
var setHeader = function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic YWtpcmF0ZXN0OmR0d3N0ZXN0');
}
不确定我做错了什么。您的beforeSend不允许Jquery传入xhr对象以进行标题修改。线路应该是
beforeSend: function(xhr) { xhr.setRequest(......); } // all-in-one, no extra function needed
或
你亦可:
var setHeader = function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic YWtpcmF0ZXN0OmR0d3N0ZXN0');
}
function domainAvailabilityCheck(domain) {
$.ajax({
type: 'GET',
url: 'http://api.domainapi.com/v1/availability/'+domain+'.com',
beforeSend: setHeader,
success: function(spitback) {
console.log(spitback.content.domainList.status);
},
dataType:'jsonp'
});
}
实际上,将保存匿名函数的变量setHeader放在哪里并不重要,但这样更容易阅读(对于我和我的软编译器…;)如何计算基本身份验证头?应该是字符串文字username:password()@tozew的base 64编码,这可能是我的问题。我使用的是示例页面上列出的基本身份验证。生成我自己的http身份验证可以解决我的问题吗?那么您建议如何创建此字符串
var setHeader = function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic YWtpcmF0ZXN0OmR0d3N0ZXN0');
}
function domainAvailabilityCheck(domain) {
$.ajax({
type: 'GET',
url: 'http://api.domainapi.com/v1/availability/'+domain+'.com',
beforeSend: setHeader,
success: function(spitback) {
console.log(spitback.content.domainList.status);
},
dataType:'jsonp'
});
}