2014-05-20 10 views

Antwort

179

Es gibt mindestens eine Middleware auf npm für den Umgang mit CORS in Express: cors. [Siehe @mscdex Antwort]

Dies ist, wie individuelle Antwort-Header zu setzen, von dem ExpressJS DOC

res.set(field, [value]) 

Set-Header-Feld

res.set('Content-Type', 'text/plain'); 

zu schätzen oder ein Objekt übergeben, um mehrere Felder festgelegt auf Einmal.

res.set({ 
    'Content-Type': 'text/plain', 
    'Content-Length': '123', 
    'ETag': '12345' 
}) 

Aliased als

res.header(field, [value]) 
+2

Dies sollte – Bruno

+0

die akzeptierte Antwort werden Wie kann ich diese Werte zu erhalten? Weil ich diese Werte in 'res' Objekt gesetzt habe. Wenn ich versuche, diesen Inhalt zu sehen, gehe ich undefiniert mit 'res.headers'; –

+0

Dann verwende ich 'res.write ('content')'? – George

7

Es gibt mindestens eine Middleware auf npm für CORS in Express Handhabung: cors.

+0

Das hat mir sehr geholfen! Vielen Dank. – Maas

2

Sie können dies tun, indem Sie Kors verwenden. cors Ihre CORS response

var cors = require('cors') 
 

 
app.use(cors());

2

@ Klode Antwort handhaben ist richtig.

Sie sollten jedoch einen anderen Antwortheader festlegen, um Ihren Header für andere zugänglich zu machen.


Beispiel:

Zuerst Sie

response.set('page-size', 20); 

Then 'page-size' in Antwort-Header hinzufügen, alles, was Sie tun müssen, um Ihren Kopf

response.set('Access-Control-Expose-Headers', 'page-size') 
+0

Ich saß über eine Stunde fest und versuchte herauszufinden, warum keiner meiner benutzerdefinierten Header es bis zum anderen Ende schaffte. Sie zu enttarnen war die Antwort. Ich danke dir sehr!Warum dieser Header in den Express-Dokumenten (oder in irgendwelchen Artikeln, die ich bisher über benutzerdefinierte Header gelesen habe) nicht erwähnt wird, ist sehr verwirrend. –

6
aussetzen

Das ist so nervig.

Okay, wenn jemand immer noch Probleme hat oder einfach keine weitere Bibliothek hinzufügen möchte. Alles, was Sie tun müssen, ist diese Middleware-Codezeile vor Ihren Routen zu platzieren.

Cors Beispiel

app.use((req, res, next) => { 
    res.append('Access-Control-Allow-Origin', ['*']); 
    next(); 
}); 

// Express routes 
app.get('/api/examples', (req, res)=> {...});