Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么我得到';访问控制允许原点';错误_Angular_Angular Cli - Fatal编程技术网

Angular 为什么我得到';访问控制允许原点';错误

Angular 为什么我得到';访问控制允许原点';错误,angular,angular-cli,Angular,Angular Cli,我正在创建一个小应用程序,使用angular cli从网站url获取html内容。我已添加并导入了所有必需的文件,但出现以下错误: 无法加载XMLHttpRequest . 不 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 进入 我们如何解决这个问题 脚本: import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@ang

我正在创建一个小应用程序,使用angular cli从网站url获取html内容。我已添加并导入了所有必需的文件,但出现以下错误:

无法加载XMLHttpRequest . 不 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 进入

我们如何解决这个问题

脚本:

 import { Component, OnInit } from '@angular/core'; 
 import { HttpClient } from '@angular/common/http';  
 import * as jQuery from 'jquery';   
 import { Http, Headers, RequestOptions } from '@angular/http'; 

 @Component({
  selector: 'app-bodycontent',
  templateUrl: './bodycontent.component.html',
  styleUrls: ['./bodycontent.component.css']
 })  
 export class BodycontentComponent implements OnInit { 
 title = 'app';
 results = '';
 constructor(private http: HttpClient){
 }
 ngOnInit(): void {

 let headers = new Headers({ 'Content-Type': 'text/html' });
 let options = new RequestOptions({ headers: headers });
 this.http.get('https://www.test.org/publictest/index.html').subscribe(html => {
  alert(html);
 });
 } 
}
位于的服务器需要提供一个标头,告知浏览器允许您的站点向其请求数据。它应该发送一个标题,类似于下面的响应-

Access-Control-Allow-Origin: http://localhost:8080
然后,您就可以将该url中的资源使用到您的页面中


或者,如果它仅适用于您的本地环境,则有助于绕过此限制的浏览器扩展(适用于几乎所有主要浏览器)。您可以使用它们。

出于网络安全目的,所有浏览器都遵循SOP(同源策略)

您可以了解更多关于SOP的信息

因此,如果您正在为不遵守这些SOP规则的应用程序获取web服务响应,您将在控制台中看到这些错误


为了克服这一点,您可以为chrome使用CORS插件。这会解决你的问题。

谢谢你的回答。我是angular cli的新手,所以你能准确地告诉我我想要做什么吗?这不是angular特有的,我建议你阅读这里的文档-最后你告诉我想要在firefox rite中运行此脚本,因为浏览器只支持?哪个脚本?目标服务器需要设置该标头。该文档通常适用于HTTP web标准,而不仅仅是可能的重复和可能的重复