Angular:通过 http 请求进行网络查询,但收到 CORS 错误

时间:2021-03-06 16:41:33

标签: angular http web

我正在尝试通过 HTTP 获取请求获取数据,但出现 CORS 错误。我想这个错误是由于我没有使用“官方”API。但是,我真的很好奇是否可以通过 angular 在不使用 API 的情况下对特定网站(例如 google 或求职网站)进行网络查询。

你可以看到我的代码如下:

import { HttpClient, HttpHeaders } from "@angular/common/http";
import { Component } from "@angular/core";

@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.scss"],
})
export class AppComponent {
  title = "job-search";
  url = "http://de.indeed.com/Jobs?as_and=Sprachlehrer";

  constructor(private _http: HttpClient) {}

  //"http://de.indeed.com/Jobs?as_and=Lehrer"
  ngOnInit() {
    let headersOpt = new HttpHeaders();
    headersOpt.set("Content-Type", "application/json");
    headersOpt.set("Access-Control-Allow-Origin", "*");
    this._http
      .get(this.url, {
        headers: headersOpt,
      })
      .subscribe((res) => {
        console.log(res);
      });
  }
}

我这里没有“真正的”HTML 文件,因为我只想得到查询结果。

感谢您的解决方案。

最好的问候 我

1 个答案:

答案 0 :(得分:1)

Access-Control-Allow-Origin 标头必须在您尝试访问的服务器的响应中设置,而不是在您的客户端中设置。由于它不是您的服务器,您将收到 CORS 错误。

大多数情况下,API 需要 API 密钥。没有此密钥,您将无法调用 API。

要回答您的问题,您可以编写(或使用)一个网站爬虫,它从页面的 HTML 中提取数据。这样您就不必调用实际的 API。

您可以阅读有关 CORS 和同源政策 here 的更多信息。

相关问题