当前位置: 首页 > 知识库问答 >
问题:

交叉起源请求被阻止:同一起源策略不允许读取远程……CORS标头“Access-Control-Allow-Origin”丢失[重复]

归誉
2023-03-14

我在http://localhost:3000/eData中有数据

[{"_id":"598705ac8f79380367e0a7f2","name":"prasad","age":"28","gender":"male","phone":8790440944},{"_id":"598733508f79380367e0a7f8","name":"ravi","age":"27","gender":"male","phone":"9912881777"}
 import { BrowserModule } from '@angular/platform-browser';
 import { NgModule } from '@angular/core';
 import {HttpModule} from "@angular/http";
 import { AppComponent } from './app.component';
 import {TasksComponent} from "../tasks/tasks.component";
 import {TaskServices} from "./services/task.services";

 @NgModule({
declarations: [AppComponent, TasksComponent],
imports: [BrowserModule,HttpModule],
providers: [TaskServices],
bootstrap: [AppComponent,TasksComponent]
})
 export class AppModule { }
 import {Component, enableProdMode} from '@angular/core';
 import {TaskServices} from "../app/services/task.services";
 enableProdMode();
 @Component({
 selector: 'tasks',
 templateUrl: './tasks.component.html',
 styleUrls: ['./tasks.component.css']
 })
 export class TasksComponent {
 constructor(private taskServices:TaskServices){
 this.taskServices.getTasks()
       .subscribe(tasks =>{
        console.log(tasks);
      });
  }
  title = 'app';
 }
 import {Injectable} from '@angular/core';
 import {Http, Headers} from "@angular/http";
  import 'rxjs/add/operator/map';

 @Injectable()
 export class TaskServices{
  constructor(private http:Http){
 console.log('Task service initialized....');
  }
    getTasks(){
   return this.http.get('http://localhost:3000/edata')
    .map(res => res.json());
  }

当我运行应用程序时,在控制台中,我会收到错误交叉起源请求阻塞:同一起源策略不允许读取http://localhost:3000/edata上的远程资源。(原因:CORS标头“Access-Control-Allow-Origin”丢失)。

如何修复错误.以及如何从其他主机获取数据...请帮助我。

共有1个答案

岳茂
2023-03-14

如果使用Node-server,请将其添加到server.js中

app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});

并在http方法中添加Hearders

return this.http.get(
  'http://localhost:3000/edata',{
    headers: {'Content-Type', undefined} /** Use Content-type as your requirement undifined OR application/json**/
  }).map(res => res.json())
 类似资料:
  • Response.AddHeader(“Access-Control-Allow-Origin”,“*”)是如何实现的;行设置多个标题时,包括,但没有当我删除它?

  • 问题内容: 我正在使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地不被访问控制允许来源允许的。 我该如何解决这个问题? 问题答案: 不久前,我写了一篇有关此问题的文章Cross Domain AJAX 。 如果

  • 我有这个映射: 我正在使用控制器SpringBoot,我的控制器是 我将注释添加到所有存储库 主要类别是: 我添加了文件MyConfiguration(如爵士提议的那样) 前端(角度6) 因此,我想向使用这种方法的用户添加一个专家列表: 在哪里 你有解决这个问题的想法吗?。谢谢。

  • 问题内容: 我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地不被访问控制允许来源允许的。 我该如何解决这个问题? 问题答案: 如果您控制响应服务器,最简单的方法是为以下项添加响应标

  • 我正在开发一个web应用程序,我使用angular为前端和keycloak为安全。 我在angular Side上使用以下软件包: keycloak-js@10.0.1 在前端(angular应用程序)上,我试图使用以下服务检索用户详细信息: 正如我所想,对loadUserProfile()的调用会向keycloak服务器的客户机(帐户)发起GET请求。 我得到一个CORS错误消息作为响应,请参见

  • 问题内容: XMLHttpRequest cannot load http://localhost:8080/api/test. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin. 我阅读了有关跨域Ajax请求的信息,并了解了潜在的安全问题。就我而言,有2台服务器在本地运行,并且希望在测试期间启用跨