我试图从appannie.com的api中获取一些数据,但似乎无法获得基本的身份验证。所有我得到的是401 (未授权的)错误。这就是我所拥有的:
var username = "email@email.com";
var password = "password";
var url = "https://api.appannie.com/v1/accounts";
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = btoa(tok);
return "Basic " + hash;
}
$.ajax({
url: url,
dataType: "jsonp",
beforeSend: function (xhr){
xhr.setRequestHeader('Authorization', make_base_auth(username, password));
xhr.setRequestHeader('Accept', "application/json");
},
success: function(data) {
alert("success");
},
fail: function(data) {
alert("fail");
}
});发布于 2013-05-16 09:04:34
jQuery/javascript中不允许跨域调用。对于跨域jQuery ajax调用,您只有两个可靠的选择:
1:使用代理脚本,该脚本在需要请求xml的页面所在的域中为您发出请求
http://wiki.asp.net/page.aspx/1430/aspnet-proxy-page--used-for-cross-domain-requests-from-ajax-and-javascript/
2:使跨域服务器支持CORS。
http://www.html5rocks.com/en/tutorials/cors/
此外,出于安全考虑,不建议使用另一个选项(JSON-P):
http://www.ibm.com/developerworks/library/wa-aj-jsonp1/
我认为1号对你的情况是适用的。
https://stackoverflow.com/questions/16577412
复制相似问题