Angular 使用HttpClient向neo4j发出Post请求时出错

Angular 使用HttpClient向neo4j发出Post请求时出错,angular,neo4j,Angular,Neo4j,我试图向neo4j数据库发出post请求,但控制台中出现错误 错误如下: 在“”处访问XMLHttpRequest 来自源“”已被CORS策略阻止: 请求的服务器上不存在“Access Control Allow Origin”标头 资源 “网络”选项卡中的响应为: { "errors" : [ { "message" : "Invalid username or password.", "code" : "Neo.ClientError.Security.Authoriza

我试图向neo4j数据库发出post请求,但控制台中出现错误

错误如下:

在“”处访问XMLHttpRequest 来自源“”已被CORS策略阻止: 请求的服务器上不存在“Access Control Allow Origin”标头 资源

“网络”选项卡中的响应为:

{
  "errors" : [ {
    "message" : "Invalid username or password.",
    "code" : "Neo.ClientError.Security.AuthorizationFailed"
  } ]
}
我的类型脚本代码是:

const headers = new HttpHeaders().set('Content-Type', 'application/json');
    headers.set('Accept', 'application/json; charset=UTF-8')
    headers.set('Authorization', 'Basic ' + btoa('username=rbs:password=rbs'))
    this.httpService.post("http://localhost:7474/db/data/cypher", {
      "query": "match (a:Product) -->(b:Functions)--> (c:Subfunctions) return a,b,c"
    },
      { headers }).subscribe(
        data => {
          debugger
          this.graphdata = data;

        },
        (err: HttpErrorResponse) => {
          debugger
          console.log(err.status);
        }
      );

这是一个CORS问题。当您尝试调用API或其他服务时,如果您有不同的主机或端口()

试着像这篇文章一样解决在你的角上包含一个代理的问题()

对于Angular应用程序,我有一个名为“proxy.conf.json”的文件,配置如下:

{
  "/api/*": {
    "target": "http://localhost:8080",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug"
  }
}
我呼吁npm从以下内容开始:

"start": "ng serve  --proxy-config proxy.conf.json",
我的后端路由是在环境文件“environment.ts”中配置的

另一种解决方法是在Chrome或Firefox中安装CORS扩展

希望这对你有帮助

export const environment = {
  production: false,
  apiBaseUrl: 'http://localhost:4200/api/'
};