Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 在Express Nodejs Serverless中获取XMLHttpRequest CORS错误_Node.js_Express_Aws Lambda_Aws Api Gateway_Serverless - Fatal编程技术网

Node.js 在Express Nodejs Serverless中获取XMLHttpRequest CORS错误

Node.js 在Express Nodejs Serverless中获取XMLHttpRequest CORS错误,node.js,express,aws-lambda,aws-api-gateway,serverless,Node.js,Express,Aws Lambda,Aws Api Gateway,Serverless,我正在使用serverless express nodejs构建API 遵循本教程 错误 访问位于“”的XMLHttpRequesthttps://api.execute-api.ap-south-1.amazonaws.com/dev/users/login“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态 下面是我的API网关的外观 serverless.yml文件 functions: Use

我正在使用serverless express nodejs构建API

遵循本教程

错误

访问位于“”的XMLHttpRequesthttps://api.execute-api.ap-south-1.amazonaws.com/dev/users/login“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态

下面是我的API网关的外观

serverless.yml文件

 functions:
   UserLoginManual:
     handler: index.handler
    events:
      - http:
       path: users/login
       method: post
       cors: true
resources:
 Resources:
  StorageBucket:
   Type: "AWS::S3::Bucket"
   Properties:
      BucketName: ${self:custom.bucket}
   GatewayResponseDefault4XX:
   Type: 'AWS::ApiGateway::GatewayResponse'
     Properties:
       ResponseParameters:
         gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
         gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
    ResponseType: DEFAULT_4XX
    RestApiId:
      Ref: 'ApiGatewayRestApi'
index.js

const serverless = require('serverless-http');
const express = require('express')
const app = express()
const bodyParser = require("body-parser");
const bcrypt = require("bcryptjs");
const { check, validationResult} = require("express-validator");
const jwt = require("jsonwebtoken");
const mongoose = require("mongoose");
const { json } = require('express');
var cors = require('cors')

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors());
// DB Connection Instance
const { connectToDatabase } = require("./services/db");
const auth = require("./middleware/auth");


// Models File
const UsersModel = require('./models/UsersModel');

app.post(
"/users/login",
[
  check("email", "Please enter a valid email").isEmail(),
  check("password", "Please enter a valid password").isLength({
    min: 6
  })
],
async (req, res) => {
  const conn = await connectToDatabase();
  const errors = validationResult(req);

  if (!errors.isEmpty()) {
    return res.status(400).json({
        status: "error",
        message: errors.array()
    });
  }

  const { email, password } = req.body;

  try {
    let user = await UsersModel.findOne({
      email
    });
    if (!user) {
      return res.status(400).json({
          status: "error",
          message: "User Not Exist"
      });
    }
    const isMatch = await bcrypt.compare(password, user.password);
    if (!isMatch) {
      return res.status(400).json({
          status: "error",
          message: "Incorrect Password!"
      });
    }
    const payload = {
      user: {
        id: user.id
      }
    };
    jwt.sign(
      payload,
      "randomString",
      {
        expiresIn: 50000
      },
      (err, token) => {
        if (err) throw err;
        res.status(200).json({
            status: "success",
            token: token
        });
      }
    );
  } catch (e) {
    console.log(e.message)
    return res.status(500).json({
        status: "error",
        message: e.message
    });
  }
});

module.exports.handler = serverless(app);
试图添加

res.setHeader('Access-Control-Allow-Origin', "*")
请帮忙