У меня в API-шлюзе две конечные точки, которые настроены одинаково и указывают на одну и ту же лямбда-функцию.Единственное отличие состоит в том, что одна из конечных точек - это GET, а другая - POST.
Вот мой код, который вызывает конечную точку API.
fetch('api/public/libraries/sign-out', {
method: 'POST',
headers: new Headers({
'Accept': 'application/json',
})
})
.then(response => {
if (!response.ok) {
throw new Error('Failed with HTTP code ' + response.status);
}
return response.json();
})
.catch(error => {
console.log('Error:', error);
})
.then(response => {
console.log(response);
});
Когда я устанавливаю метод на GET, запрос возвращает успех.Когда у меня есть метод POST, я получаю index.tsx:59 Error: Error: Failed with HTTP code 403
.
Я установил Allowed HTTP Methods
в GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
для шаблона пути, под которым этот API лежит.
Что еще может бытьнеправильно?Есть ли какие-то дополнительные настройки, которые мне нужно изменить, чтобы разрешить POST?Или это код функции Lambda, который должен отличаться, когда он отвечает на POST?Или это что-то еще, что может быть проблемой?
Я использую Node 6 в качестве среды выполнения на Lambda.Вот код Lambda:
exports.handler = (event, context, callback) => {
callback(null, {
statusCode: 200,
headers: {},
body: JSON.stringify({
message: 'hello world'
})
});
};