javascript - 如何在 GraphQL/AWS Amplify 的前端启用 CORS 模式?
问题描述
如何为 AWS Amplify 的 GraphQL 做同样的事情?
fetch('https://trusted-api.co.jp', {
mode: 'cors'
});
我既没有找到文档如何做到这一点,也没有找到提到 cors 的源代码。
参考
常规的 graphQL 操作可以调用如下:
import AWSAmplifyAPI, { graphqlOperation as graphQL_Operation, GraphQLResult } from "@aws-amplify/api";
import Observable from "zen-observable";
export default class DataBaseService {
public static async sendRequestAndExtractDataFromResponse(
graphQL_RawRequest: string,
requestVariables?: object
): Promise<unknown> {
const serverRawResponse: GraphQLResult | Observable<unknown> =
await AWSAmplifyAPI.graphql(graphQL_Operation(graphQL_RawRequest, requestVariables));
// ...
}
}
解决方案
您需要在服务器端进行配置,因此服务器端需要批准这个“CORS”问题。
从技术上讲,您的放大 lambda 函数将添加类似于以下内容的代码:
exports.handler = async (event) => {
const response = {
statusCode: 200,
// Uncomment below to enable CORS requests
headers: {
"Access-Control-Allow-Origin": "*",
},
// headers: {
// "Access-Control-Allow-Headers" : "Content-Type",
// "Access-Control-Allow-Origin": "https://www.example.com",
// "Access-Control-Allow-Methods": "OPTIONS,POST,GET"
// },
body: JSON.stringify("Hello from Lambda!"),
};
return response;
};
推荐阅读
- javascript - 如何从脚本中删除 HTML?
- c++ - 运行查询后如何从sql表中获取列
- json - 如何在 SQL Server 2014 中使用 OPENJSON 或兼容的等效项?
- jenkins - 从詹金斯部署后缺少一件工件
- c# - 如何从 WebForms 的 DropDownList 中获取项目的 ID?
- python - 如何为集成测试设置时区
- c# - 在计算器应用程序中将运算符从减号更改为加号,反之亦然
- javascript - Promise 本身就是返回 Promise
- amazon-web-services - 无服务器框架 S3 事件规则
- python - 使用 datetime 模块获取无效语法