我在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
答案 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())
类似
graphqlHTTP