Я развернул лямбда-функцию на 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 с неверными учетными данными. У кого-нибудь есть объяснение этому?