我正在尝试从Vuejs应用程序中获取ArangoDb数据库集合中的文档。当我在节点控制台中运行下面的代码时,它工作正常。
Database = require('arangojs').Database;
aqlQuery = require('arangojs').aqlQuery;
const db = new Database();
db.useBasicAuth('root', 'degfra');
db.useDatabase('mydb');
let collection = db.collection('firstCollection');
db.query(aqlQuery`
FOR doc IN ${collection}
SORT doc.value ASC
RETURN doc._key
`).then(
cursor => cursor.all()
).then(
keys => console.log('All keys:', keys.join(', ')),
err => console.error('Failed to execute query:', err)
);
}
但是当我从Vuejs应用程序运行它时(唯一的区别是我用'arangojs'中的'import {Database,aql}替换'require'语句),它返回:
无法加载http://localhost:8529/_db/mydb/_api/cursor:对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Credentials”标头的值为“false”,必须为“true” '当请求的凭据模式为'include'时。因此,不允许原点“http://localhost:8080”访问。 XMLHttpRequest发起的请求的凭证模式由withCredentials属性控制。
可能是'db.useBasicAuth('root','degfra'); '在应用程序中不起作用?或者在浏览器中使用arangojs还有另外一个问题吗? 谢谢你的帮助。