从 Angular 调用第三方 APIs (UiPath Orchestrator API)

Calling Third-party APIs from Angular (UiPath Orchestrator API)

我已经使用 Django 创建了一个应用程序 Angular,我想使用 UiPath Orchestra API 显示为特定进程执行的作业。我在 Postman 上测试了 API,它工作正常。但是当我在我的 Angular 应用程序中实现它时,出现了 404 错误。 我可能做错了什么?

服务

public get_jobs() {
let UiPath_token = 'Bearer abc'
let myheader = new HttpHeaders({ 'Authorization': UiPath_token,'$top':'3', '$filter':"Release/Name eq 'process_name'"});
console.log(UiPath_token);
return this.httpWithoutInterceptor.get<any>(this.UiPath, {headers:myheader}).subscribe(data=>{
  let job_list=JSON.parse(data);
  console.log("Jobs :", job_list);});

按照 Kanishk Anand 的建议进行更改后出错:

谢谢

您使用了 ${this.uiPath}, {headers: myheader}} 来“字符串化”object,因此导致了这个问题。您应该将 URL 作为单独的参数传递,并将 headers 作为 options.

的一部分传递
public get_jobs() {
let UiPath_token = 'Bearer abc'
let myheader = new HttpHeaders({ 'Authorization': UiPath_token,'$top':'3', '$filter':"Release/Name eq 'process_name'"});

console.log(UiPath_token);

return this.httpWithoutInterceptor.get<any>(this.UiPath, {headers:myheader}).subscribe(data=>{
  let job_list=JSON.parse(data);
  console.log("Jobs :", job_list);
});

对于 CORS 错误,以下是您的选择:

  1. 在 API 端点服务器上启用 CORS headers 以支持 localhost:4200
  2. 代理对 Django 服务器的 API 调用并从那里点击 API 端点。这将要求您在 Django 上创建一个单独的 API 端点,以便 Angular 从您最终到达所需端点的地方命中

关于 CORS headers 的更多详细信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS