0

我正在尝试从 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");
    }
});
4

1 回答 1

1

jQuery/javascript 中不允许跨域调用。对于跨域 jQuery ajax 调用,您只有 2 个可靠的选项:

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 适用于您的情况。

于 2013-05-16T01:04:34.010 回答