Estoy intentando PUBLICAR un elemento en VS Code en mi tabla de DynamoDB a través de axios. Puedo PUBLICAR un elemento con éxito a través de Postman, sin embargo, cuando intento PUBLICAR un elemento con axios, aparece un error de respuesta 404 (a continuación).
Me pregunto si me estoy perdiendo algo al intentar PUBLICAR un elemento a través de axios (abajo).
axios({ 'method': 'post', 'url': 'https://na9blqj5y5.execute-api.us-east-1.amazonaws.com/test', 'Content-Type': 'application/json', 'data': { 'body': eraseThis, } }) .then((response) => { return console.log('axiosResp', response); }) .catch((err) => console.error('axios', err))Un pensamiento que tuve es que debería importar el SDK de AWS e invocar mi función lambda con mis credenciales de eso (abajo)? ¡Cualquier ayuda sería muy apreciada!
Esta es una solicitud POST exitosa en Postman.
Ahora recibo un error de CORS que tuve hace unas semanas (incluso después de habilitar CORS en el recurso API en la interfaz API Gateway).
A continuación se muestra el código actualizado usando aws-sdk
Tus ejemplos son difíciles de seguir porque no coinciden.
Entonces, de inmediato me pregunto si solo tiene un código diferente implementado en diferentes etapas. Sin embargo, suponiendo que lo haya descartado y ese no sea el caso, creo que lo que quiere decir es que su llamada axios realizada a través del navegador falla mientras que el cartero funciona.
En realidad, ese es el comportamiento esperado porque el cartero no es un navegador y pasa por alto las restricciones de CORS que implementan los navegadores. Hay muchas preguntas existentes aquí que explican eso, así que no voy a profundizar en eso.
Creo que la solución para esto es actualizar su controlador lambda (el proxy lambda real que devuelve una respuesta) para devolver siempre un encabezado Access-Control-Allow-Origin como lo documenta AWS aquí . Para permitir todos los orígenes, puede usar un comodín * . ex:
headers: { "Access-Control-Allow-Headers" : "Content-Type", "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "OPTIONS,POST,GET" } Asegúrese de comprender las implicaciones de usar * , que es una discusión para una publicación diferente.
No estoy seguro de lo que hice, pero la llamada a dynamodb comenzó a funcionar aleatoriamente. Creo que tuve un error de sintaxis, o algo así.