Ошибка CORS при вызове post api прямо с клиента - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть функция записи, которую я протестировал и работает отлично.Когда я вызываю его из моего внешнего интерфейса, я получаю следующую ошибку:

Access to XMLHttpRequest at 'https://sdigg5u4xb.execute-api.eu-west-1.amazonaws.com/prod/sites' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Я попытался отключить CORS и использовать разные пулы идентификаторов Cognito, чтобы разрешить разные разрешения, но я все еще получаю ту же ошибку.При тестировании в AWS он проходит успешно, без ошибок.

Вот где я вызываю API:

import { API } from "aws-amplify";

export default (async function submitSite(values) {
  console.log(values);
  return API.post("sites", "/sites", {
    body: values
  }) 
});

Вот где я определяю функцию в моем файле serverless.yml:

createSite:
    handler: CreateSite.main
    events:
      - http:
          path: sites
          method: post
          cors: true
          authorizer: aws_iam

1 Ответ

0 голосов
/ 02 апреля 2019

Я бы порекомендовал вам проверить их.

  • Убедитесь, что вы включили CORS в вашем API-шлюзе, как описано здесь
  • Убедитесь, что ваш сервер меньшев приложении включена поддержка CORS здесь .
  • Не забудьте добавить в свою функцию заголовок ответа Access-Control-Allow-Origin.

    module.exports.hello = function(event, context, callback) {
    
    const response = {
      statusCode: 200,
      headers: {
        "Access-Control-Allow-Origin" : "*", // Required for CORS support to work
        "Access-Control-Allow-Credentials" : true // Required for cookies, authorization headers with HTTPS
      },
      body: JSON.stringify({ "message": "Hello World!" })
    };
    
    callback(null, response);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...