Sto sviluppando un'applicazione sul mio pc locale. Il frontend dovrebbe essere costruito con spinejs e il backend-api con node.js. spina dorsale è in esecuzione sulla porta 9294 e node.js è in esecuzione sulla porta 3000. nella colonna vertebrale che ho aggiunto al mio modello seguente:spine, node.js (espresso) e Access-Control-Allow-Origin
@url: "http:localhost:3000/posts"
e nel mio Server Express
app.get('/posts', function(req, res){
console.log("giving ALL the posts");
res.header("Access-Control-Allow-Origin", "*")
res.json(posts);
});
Ma sono sempre ottenendo il seguente erro in cromo:
XMLHttpRequest cannot load http://localhost:3000/posts. Origin http://localhost:9294 is not allowed by Access-Control-Allow-Origin.
che cosa devo fare che posso accedere al mio api correttamente? Anche se aggiungendo l'intestazione nelle risposte, il problema si risolve.
Avete ispezionato l'intestazione di risposta per confermare che l'intestazione è infatti stato impostato? Inoltre, jQuery usa il comando HTTP 'OPTIONS' per rilevare pre-auth; assicurati che express stia rispondendo a quel Verb HTTP anche – tkone
onestamente, sembra che la mia richiesta non raggiunga mai il mio server node.js. Ho aggiunto una dichiarazione di debug in app.get() PRIMA che qualcosa sia stato inviato al client. Quando accedo alla mia API direttamente sopra l'url posso vedere la dichiarazione ma non quando accedo tramite la colonna vertebrale – soupdiver
YOu dovrebbe usare qualcosa come charles per assicurarsi che questo accada. Facciamo un sacco di cose x-domain qui ed è frustrante finché non vedi che l'intestazione NON è impostata. – tkone