Quiero hacer una solicitud, obtener o publicar en mi API de backend de firebase
esta es mi solicitud
const verify = async (address) => { const params = { address } const { data } = await client.get('test', { params }) }y mi backend estoy usando cors
const app = require('express')() const cors = require('cors') const options = { origin: true, methods: 'GET,POST,PUT,DELETE,OPTIONS,HEAD,PATCH', preflightContinue: false, optionsSuccessStatus: 204, } app.use(cors(options)) app.get('/test', (req, res) => { console.log('console.log', req.body) res.status(200).send('hello world!') }) module.exports = { Module: () => app, }No sé qué pasó, pero recibo un error en cors:
El acceso a XMLHttpRequest en 'https://...functions.net/test?address=AABB' desde el origen 'http://localhost:8080' ha sido bloqueado por la política CORS: No 'Access-Control-Allow-Origin' el encabezado está presente en el recurso solicitado.
Sospecho que necesita insertar la URL, en la que su aplicación Vue se ejecuta en options.origin
¿O options.origin: true establece los encabezados en '"Access-Control-Allow-Origin": *'?
EDITAR: Primero, necesita req.query.address para acceder al parámetro de consulta de dirección que envió desde Vue.
EDITAR: Sin configurar sus options en cors() , obtengo Access-Control-Allow-Origin: * Encabezado de respuesta de Express. Es posible que no quiera hacer esto en producción, pero establezca el origen en alguna URL que use la API.
const app = require('express')() const cors = require('cors') app.use(cors()) app.get('/test', (req, res) => { console.log('console.log', req.query.address) res.status(200).send(`The address is ${req.query.address || "not existing"}`) }) app.listen(3000, () => console.log("Express running..."))Yo uso esto. Encuentre esta solución en Stackoverflow:
//#region CORS - Area... var whitelist = [ "http://127.0.0.1:3000", "https://127.0.0.1:3000", "https://localhost:3000", "http://localhost:3000", ]; var corsOptions = { origin: function (origin, callback) { if (whitelist.indexOf(origin) !== -1 || !origin) { callback(null, true); } else { console.log("Blocked-Origin:", origin); callback(new Error("Not in CORS-Origin-List")); } }, methods: ["POST, DELETE, GET"], optionsSuccessStatus: 200, }; app.use(cors(corsOptions)); //#endregion CORS - Area...Y esta solución no es recomendable, pero para Test ok...
app.use( cors({ optionsSuccessStatus: 200, credentials: true, origin: "*", methods: ["GET", "POST", "DELETE"], }) ); Nota: origin: "*", true