NodeJs - Lambda - 启用Cors

时间:2018-05-01 16:38:16

标签: node.js amazon-web-services cors aws-lambda apollo-server

我在aws上部署了一个nodejs lambda函数,它通过API网关公开了一个lambda端点。 端点为here,允许您访问graphiql端点。

当我尝试从我的反应应用程序调用此端点时 - 我收到了错误

Failed to load https://3h5e2m2b1a.execute-api.us-east-1.amazonaws.com/test?: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

在检查来自Lambda的响应时 - 它不包含标题' Access-Control-Allow-Origin'

我在lambda.js中添加了以下内容以尝试启用cors但它似乎无法正常工作。

    const awsServerlessExpress = require('aws-serverless-express');
const app = require('./src/app');
const cors = require('cors');
app.use(cors()); // enable `cors` to set HTTP response header: Access-Control-Allow-Origin: *
const server = awsServerlessExpress.createServer(app);

我的lambda函数的nodejs代码位于here

有没有人对我在nodejs函数上启用cors需要做些什么有什么想法? 我在API网关上启用了cors

1 个答案:

答案 0 :(得分:2)

我不知道import JssProvider from 'react-jss/lib/JssProvider'; import { create } from 'jss'; import { createGenerateClassName, jssPreset } from 'material-ui-next/styles'; const generateClassName = createGenerateClassName(); const jss = create(jssPreset()); jss.options.insertionPoint = 'jss-insertion-point'; 是如何工作的,但是如果它没有将它转发回下一个中间件express-graphql,它将永远不会被击中。因为你做的是

app.user(cors())

在使用var app = express(); app.use('/', graphqlHTTP({ schema: schema, rootValue: root, graphiql: true, })); // then app.user(cors()) 类似

之前尝试调用cors
graphqlHTTP