У меня возникла проблема, когда конечная точка POST
возвращает ответ при запуске в Postman, но не при запуске его в браузере.
Я установил конечную точку API на AWS через сервер. Вот конфигурация .yml для этого:
service: tableau-export-rest
provider:
name: aws
runtime: nodejs10.x
region: eu-west-1
stage: ${opt:stage, 'dev'}
timeout: 900
memorySize: 3008
functions:
storeExportFiters:
handler: index.storeExportFiters
events:
- http:
path: /store-export-filters
method: post
cors: true
Преобразователь конечной точки storeExportFiters
(который является лямбда-выражением) на данный момент просто возвращает сообщение об успехе:
module.exports = (event, ctx, cb) => {
return cb(null, {
statusCode: 200,
body: JSON.stringify({
worked: true
})
});
}
Когда я развертываю это на AWS и попытаться попасть в конечную точку от Почтальона через POST
запрос без тела или чего-либо еще, что он посылает мне штраф в порядке. Однако, когда я пытаюсь сделать это в браузере, я получаю cors
ошибку:
Доступ к XMLHttpRequest по адресу https://myapi.com/store-export-filters из источника 'http://localhost : 9003 'было заблокировано политикой CORS: на запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.
Вот код браузера, использованный для попытки получить ответ от конечной точки. Я использую Ax ios для запроса http:
axios.post('https://myapi.com/store-export-filters')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Я не могу понять, почему я получаю ошибку CORS, тем более что она работает в Postman на моей машине .