Ax ios CORS только по недействительному запросу - PullRequest
0 голосов
/ 02 марта 2020

Я развернул лямбда-функцию на AWS для простой конечной точки входа в систему и подключил ее к шлюзу API. Я использую ax ios в Vue клиенте для подключения к нему. По какой-то причине, когда я отправляю действительные учетные данные, все работает просто отлично. Однако когда я отправляю неверные учетные данные, я получаю следующую ошибку CORS:

Доступ к XMLHttpRequest по адресу https://MY_ENDPOINT.us-east-1.amazonaws.com / staging / login из источника 'http://localhost: 8081 'заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Ниже приводится моя лямбда-функция:

exports.loginHandler = async (event) => {
  if (event.email === "testemail@example.com" && event.password === "password") {
    return {
      message: "Successful login"
    };
  }
  throw new Error("Invalid login credentials");
};

Ниже приведена моя функция, которая вызывается при заполнении формы Vue:

import axios from "axios";

async function loginAction({ email, password }) {
  try {
    const resp = await axios.post(
      "https://MY_ENDPOINT.execute-api.us-east-1.amazonaws.com/staging/login",
      {
        email,
        password
      }
    );
    return resp;
  } catch (err) {
    // This just logs "Network error"
    console.log(err.message);
  }
}

Я настроил шаблон сопоставления для возврата ошибки 400, которая выглядит как { message: "Invalid login credentials" } когда выдается ошибка в лямбда-функции. В Почтальоне ошибка обрабатывается просто отлично, но не в браузере. Для недопустимых учетных данных запрос OPTIONS выполняется с 200.

Как я уже сказал, нет проблем, когда я предоставляю действительные учетные данные, но я получаю эту ошибку CORS с неверными учетными данными. У кого-нибудь есть объяснение этому?

...