Curl CouchDB的基本身份验证
我正在试图找出如何使用基本身份验证(即Curl CouchDB的基本身份验证,curl,couchdb,Curl,Couchdb,我正在试图找出如何使用基本身份验证(即http://test:test@CouchDB 1.3.1中的localhost:5984/mydb) 在蒲团里: 我创建了一个数据库mydb 我为它设置了两个用户。在安全选项卡中:一个成员具有读取权限[“test”]和一个管理员[“admin”] 然后我只是测试连接 使用curl: curl GET http://localhost:5984/mydb 返回401未经授权,这很好 curl GET http://test:test@localhos
http://test:test@CouchDB 1.3.1中的localhost:5984/mydb
)
在蒲团里:
- 我创建了一个数据库
mydb
- 我为它设置了两个用户。在安全选项卡中:一个成员具有读取权限
和一个管理员[“test”]
[“admin”]
curl GET http://localhost:5984/mydb
返回401
未经授权,这很好
curl GET http://test:test@localhost:5984/mydb
返回200
,因此使用curl时一切正常
使用浏览器或$.ajax:
curl GET http://localhost:5984/mydb
两者都返回url上的401
http://test:test@localhost:5984/mydb
所以,问题:
curl GET http://localhost:5984/mydb
- 使用
或usigncurl-GET
(或浏览器)有什么区别$.ajax-GET
- 我是否缺少CouchDB或其他允许执行这种身份验证的配置
- 它被称为。基本上,浏览器可以进行的ajax调用有一个限制。这是一种安全功能,不允许浏览器随意从任何地方加载资源
似乎您希望能够做到这一点,毕竟单击会加载任意资源。但是,如果任何旧的javascript程序可以加载任何其他资源,那么有很多方法可以劫持它来注入代码或窃取信息
CURL通过不受CORS的限制来解决这个问题。它只是提出你想要的任何旧请求
此外,您可以通过查询localhost:5984/\u会话来启动会话,此时将使用安全令牌cookie发送以下所有查询。是一些常用函数的一个很好的基本资源 您忘记将身份验证信息放在标题中。试试看
$(document).ready(function () {
$.ajax({
url: 'http://127.0.0.1:5984/mydb', //Your api url
type: 'GET', //type is any HTTP method
xhrFields: {
withCredentials: true
},
headers: {
'Authorization': 'Basic ' + btoa('MyUser:MyPassWord')
},
success: function (response) {
var resposta = response
},
error: function (err) {
var t = err.responseText;
console.log("Erro de requisição: " + err.responseText);
}
});
});
资料来源:从未想过401计划可能是cors的问题。通过反向代理进行测试,瞧。。谢谢