【发布时间】:2017-11-18 11:09:09
【问题描述】:
我正在尝试获取包含以下代码的网页,以便我可以抓取其数据,但我不断收到错误消息:XMLHttpRequest 无法加载 https://websiteURL.com。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:4200' 不允许访问。我已经读到我需要在标题中设置“Access-Control-Allow-Origin”名称,我尝试使用通配符“*”以及我的本地主机,但没有任何效果。
这是我的打字稿代码:
import { Component, OnInit } from '@angular/core';
import { Http, Response, RequestOptionsArgs, Headers } from '@angular/http';
....
constructor(private http: Http) { }
....
doScrape() {
var header : Headers = new Headers();
header.append('Access-Control-Allow-Origin', 'http://localhost:4200');
var args : RequestOptionsArgs = {
method: "GET",
headers: header
}
console.log('Getting html...');
this.http.get(this.b, args).subscribe(res => {
console.log(res);
this.htmlString = res.text();
})
}
为什么这不能完成工作?
【问题讨论】:
-
该标头应该来自后端。在 UI 代码(角度)中设置它没有效果。