使用 AJAX 调用从couchdb检索数据时获得401

woobm2wo  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(148)

我尝试在js文件中使用 AJAX 调用从couchdb检索数据。
但是我得到了401错误:无法加载资源:服务器以状态401(未授权)响应
下面是我的js代码:

var locate_data = $.ajax({
  url: 'http://admin:mypassword@localhost:5984/database_name',
  type:'GET',
  dataType: "json",
  success: function(data){
    console.log("successfully loaded."), 
    alert(data);
  },
  error: function(xhr) {
       console.log("error"), 
       alert(xhr.statusText)
   }
})

我可以使用'curl GET'通过使用终端从couchdb获取数据。
问题是什么?我如何解决它?

o7jaxewo

o7jaxewo1#

您可以使用Basic access authentication,其中请求包含Authorization: Basic <credentials>的头字段,其中凭据是用户名和密码的Base64编码,由单个冒号“:”连接。
这个answer解释了如何在Angular的上下文中做同样的事情。我自己没有使用Ajax,但是我想它应该看起来像这样。

$.ajax({
  url: 'http://localhost:5984/database_name',
  type:'GET',      
  headers: {
    'Accept': 'application/json',
    'Content-type', 'application/json',
    'Authorization': 'Basic ' + btoa("<username>:<password>")
  },
  xhrFields: {
      withCredentials: true
  },
  ...

相关问题