【问题标题】:How to enable the CORS mode on frontend side in GraphQL/AWS Amplify?如何在 GraphQL/AWS Amplify 的前端启用 CORS 模式?
【发布时间】:2021-01-14 14:03:27
【问题描述】:

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));
   // ...
  }
}

【问题讨论】:

    标签: javascript graphql aws-amplify


    【解决方案1】:

    您需要在服务器端进行配置,因此服务器端需要批准这个“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;
    };
    
    

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 2020-03-27
      • 2019-11-30
      • 2020-08-19
      • 2020-01-17
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      相关资源
      最近更新 更多