如何为基本身份验证发送正确的授权标头

我试图从我的API发布数据,但我无法通过基本身份验证

我尝试:

$.ajax({
键入:“POST”,
网址:http://theappurl.com/api/v1/method/,
数据:{},
跨域:是的,
发送前:函数(xhr){
setRequestHeader('Authorization'、'Basic[redact]');
}
});

我的服务器配置响应是:

响应["访问控制允许源站]=&quot*&引用;
响应[“访问控制允许方法”]=“;邮政「;
响应[“访问控制最大使用年限”]=“;1000“;
响应[“访问控制允许标头”]=“*&引用;

我得到的标题是:

请求标题

选项/api/v1/token auth/HTTP/1.1
主持人:theappurl.com
连接:保持活力
访问控制请求方法:POST
来源:http://127.0.0.1:8080
用户代理:Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.31(KHTML,类似Gecko)Chrome/26.0.1410.63 Safari/537.31
访问控制请求头:来源、授权、内容类型
接受:*/*
推荐人:http://127.0.0.1:8080/
接受编码:gzip、deflate、sdch
接受语言:es,en;q=0.8
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3

响应标题

HTTP/1.1
服务器:nginx/1.1.19
日期:2013年8月16日星期五01:29:21 GMT
内容类型:text/html
内容长度:597
连接:保持活力
WWW-Authenticate:Basic-realm="限制性;

我想服务器配置很好,因为我可以从高级REST客户端访问API(Chrome扩展)

有什么建议吗

PD:
我从Advanced REST client获得的标题是:

用户代理:Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.31(KHTML,类似Gecko)Chrome/26.0.1410.63 Safari/537.31
产地:铬-extension://hgmloofddffdnphfgcellkdfbfbjeloo
授权:基本[修订]
内容类型:application/x-www-form-urlencoded
接受:*/*
接受编码:gzip、deflate、sdch
接受语言:es,en;q=0.8
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3

服务器:nginx/1.1.19
日期:2013年8月16日星期五01:07:18 GMT
内容类型:application/json;字符集=utf-8
传输编码:分块
连接:保持活力
改变:接受,Cookie
允许:POST,选项
X-Robots-Tag:noindex

发送选项法

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding 和http://en.wikipedia.org/wiki/Basic_access_authentication ,下面是如何使用标题进行基本身份验证,而不是将用户名和密码放在URL中。请注意,这仍然不会对任何有权访问网络或此JS代码的人(例如,在浏览器中执行此代码的用户)隐藏用户名或密码:

$.ajax({
键入:“POST”,
网址:http://theappurl.com/api/v1/method/,
数据:{},
跨域:是的,
发送前:函数(xhr){
setRequestHeader('Authorization'、'Basic'+btoa(unescape(encodeURIComponent(您的\用户名+':'+您的\密码)))
}
});

发表评论