Angular 向公司内部API:Collection';公司';找不到

Angular 向公司内部API:Collection';公司';找不到,angular,api,http,curl,authorization,Angular,Api,Http,Curl,Authorization,试图通过http进行公司内部查询。我有一个简单的模型来测试数据,但我甚至没有得到一个身份验证错误 {body: {…}, url: "https://api.companieshouse.gov.uk/search/companies?q=BBC", headers: HttpHeaders, status: 404, statusText: "Not Found"} body: {error: "Collection 'companies' not found"}

试图通过http进行公司内部查询。我有一个简单的模型来测试数据,但我甚至没有得到一个身份验证错误

    {body: {…}, url: "https://api.companieshouse.gov.uk/search/companies?q=BBC", headers: HttpHeaders, status: 404, statusText: "Not Found"}
      body: {error: "Collection 'companies' not found"}
      url: "https://api.companieshouse.gov.uk/search/companies?q=BBC"
      headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
      status: 404
      statusText: "Not Found"
      __proto__: Object
我用的是邮递员,数据正在那里返回

这是我的测试服务:

 private httpOptions = {
      headers: new HttpHeaders({
      'Content-Type':  'application/json',
       Authorization: 'Basic xxxxxxxxxxxxxxxxxxxxxxx'
      })
 };

 private searchUrl = 'https://api.companieshouse.gov.uk/search/companies?q=BBC'; 

 getCompany(): Observable<any>  {
    const url = `${this.searchUrl}`;
    return this.http.get<any>(url, this.httpOptions )
   ;
  }
private httpOptions={
标题:新的HttpHeaders({
“内容类型”:“应用程序/json”,
授权:“基本XXXXXXXXXXXXXXXXXXXX”
})
};
私有搜索URL=https://api.companieshouse.gov.uk/search/companies?q=BBC'; 
getCompany():可观察

这份文件说:

基本身份验证通常由用户名和密码组成 一对公司内部API将用户名作为API密钥,并 忽略密码,因此可以保留为空

…那么我是否要在标头中将api密钥作为用户名传递


任何谦恭收到的指针

您可以控制台记录httpOptions对象并查看标题是否设置正确吗?我猜您设置HttpHeaders的方式是错误的。正确的语法应该是:
newhttpheaders({fromObject:{…您的{u header\u entries…}})
我认为它不会走那么远。这不是一个未经授权的错误。我似乎不能让这个工作与角度。如果我使用fetch,它可以很好地工作。我发现这很简单,当你知道。。。我使用Angular InMemoryDataService模拟API。这是导致错误的原因。如果你遇到同样的问题,它很容易修复。。。将passThruUnknownUrl:true添加到对象文字中,该文字是HttpClientInMemoryWebAPI模块的forRoot子句中的第二个参数。