Estoy desarrollando una aplicación en mi PC local. El frontend debería construirse con spinejs y el backend-api con node.js. columna vertebral se ejecuta en el puerto 9294 y Node.js se está ejecutando en el puerto 3000. en la columna vertebral que he añadido a mi modelo lo siguiente:columna vertebral, Node.js (express) y Access-Control-Allow-Origen
@url: "http:localhost:3000/posts"
y en mi servidor expreso
app.get('/posts', function(req, res){
console.log("giving ALL the posts");
res.header("Access-Control-Allow-Origin", "*")
res.json(posts);
});
Pero siempre estoy recibiendo el siguiente erro en cromo:
XMLHttpRequest cannot load http://localhost:3000/posts. Origin http://localhost:9294 is not allowed by Access-Control-Allow-Origin.
¿Qué debo hacer que puedo acceder a mi api correctamente? Pensé que agregar el encabezado en las respuestas soluciona el problema.
¿Ha inspeccionado la cabecera de respuesta para confirmar que la cabecera se está creando de hecho? Además, jQuery usa el comando HTTP 'OPTIONS' para detectar pre-auth; Asegúrate de que Express también responda a ese Verbo HTTP – tkone
Honestamente, parece que mi solicitud nunca llega a mi servidor node.js. He agregado una declaración de depuración en la aplicación.get() ANTES de que se envíe algo al cliente. Al acceder a mi api directamente sobre la url puedo ver la declaración pero no cuando se accede a través de la columna vertebral – soupdiver
usted debe usar algo como Charles para asegurarse de que esto está sucediendo. Aquí hacemos un montón de cosas del dominio x y es frustrante hasta que veas que el encabezado NO se está configurando. – tkone