在Node框架中面对CORS NestJS-6.3.1

时间:2019-06-20 12:18:24

标签: nestjs

我正在使用nestJs => 6.3.1框架开发Node基础项目。我仍然启用所有cors,但仍然遇到以下错误

CORS策略已阻止从来源“ http://localhost:4200”访问“ localhost:3000”处的XMLHttpRequest:仅协议方案支持跨来源请求:http,数据,chrome,chrome扩展名,https。

core.js:7187错误HttpErrorResponse {headers:HttpHeaders,status:0,statusText:“ Unknown Error”,url:“ localhost:3000”,ok:false,...}

我尝试了以下方法,但仍然面临相同的问题。

1。       var app =等待NestFactory.create(AppModule,{cors:true});       等待app.listen(3000);

  1. var app =等待NestFactory.create(AppModule);   const options = {     来源:“ *”,     方法:“ GET,HEAD,PUT,PATCH,POST,DELETE”,     飞行前继续:错误,     optionsSuccessStatus:204,     凭据:是,     allowedHeaders:'内容类型,接受',   };   console.log(app);   app.enableCors(options);   等待app.listen(3000);

    import { NestFactory } from '@nestjs/core';
    import { AppModule } from './app/app.module';
    
    async function bootstrap() {
      var app = await NestFactory.create(AppModule);
      const options = {
        origin: '*',
        methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
        preflightContinue: false,
        optionsSuccessStatus: 204,
        credentials: true,
        allowedHeaders: 'Content-Type, Accept',
      };
      console.log(app);
      app.enableCors(options);
      await app.listen(3000);
    }
    bootstrap();
    

预期的输出:服务器应允许处理cros原始请求,但会出现以下问题或错误。

CORS策略已阻止从来源“ http://localhost:4200”访问“ localhost:3000”处的XMLHttpRequest:仅协议方案支持跨来源请求:http,数据,chrome,chrome扩展名,https。

1 个答案:

答案 0 :(得分:1)

仔细阅读错误消息:

  

CORS策略已阻止从来源“ http://localhost:4200”访问“ localhost:3000”处的XMLHttpRequest:仅协议方案支持跨来源请求:http,数据,chrome,chrome扩展名,https。

您不是通过HTTP(或HTTPS)发出请求,因此您的服务器(这是HTTP服务器)无法响应该请求,因此您对运行服务器的代码所做的任何操作都将有所作为。 / p>

您需要更改请求以localhost:3000开头的URL的代码,并将其更改为http://localhost:3000