如何使用jQuery Ajax发送身份验证标头

时间:2013-02-10 06:59:57

标签: jquery ajax

我正在使用domainAPI站点(目前为止是免费的)来处理域可用性检查。他们的简要文件是here

我对大部分内容都很陌生,所以我可能会忽略一些显而易见的事情。标题的第二部分是我的用户名和密码,加密为base64,格式为username:password。如果我直接访问该网址,则相同的用户名和密码会成功访问该网址。

我到目前为止的代码如下,但仍然失败:

$('#domain').keyup(function() {
    $("#loading").show();
    $.ajax({
        url: 'http://api.domainapi.com/v1/availability/example.com',
        type: 'GET',
        datatype: 'json',
        success: function() { alert("Success"); },
        error: function() { alert('Failed!'); },
        beforeSend: function setHeader(xhr) {xhr.setRequestHeader('Authorization', 'Basic ZW1iZXJza2VjaDp6eWFrc21hdnNvenY=');}
    });
});

1 个答案:

答案 0 :(得分:0)

您似乎在这里遇到了跨域问题。

如果服务器启用了CORS支持(请参阅http://en.wikipedia.org/wiki/Cross-origin_resource_sharing获取更多信息),则只能跨域执行AJAX请求,快速检查api.domainapi.com并不建议它。如果您打开浏览器的控制台,则应该收到错误消息。

要解决此问题,您需要在自己的服务器上实现某种代理(因为它与您的网页在同一个域上运行,应该可以用作AJAX' target&#39 ;),然后将请求转发给api.domainapi.com