2016-11-28 7 views
10

Jaka jest różnica między res.setHeader i res.header. który powinien być używany do włączania cors? W niektórych stronach używany jest res.header, a niektóre strony res.setHeader są używane dla CORS.Różnica między res.setHeader i res.header w node.js

+0

Możliwy duplikat [? Jak zezwolić CORS Ekspresowe/node.js] (http://stackoverflow.com/questions/7067966/how-to- allow-cors-in-express-node-js) –

+0

Wiem, jak zezwolić na CORS. Ale gdzieś jest napisane res.header i gdzieś res.setHeader. – Subham

Odpowiedz

19

res.setHeader() to natywna metoda Node.js i res.header() jest aliasem metody res.set() ze struktury Express.

Dokumentacja: res.setHeader(), res.set()

Te dwie metody robić dokładnie to samo, ustawić nagłówki HTTP odpowiedzi. Jedyna różnica polega na tym, że res.setHeader() pozwala tylko na ustawienie pojedynczego nagłówka i res.header() pozwoli ci ustawić ustawić wiele nagłówków. Użyj jednego dopasowania do swoich potrzeb.

+0

To nie jest poprawne. 'res.setHeader ('X-Frame-Options', '*')' ustawi nagłówek 'X-Frame-Options' z wartością' * ', podczas gdy' res.header ('X-Frame-Options', ' * ') 'ustawi nagłówek' x-frame-options' z wartością '*'. Jednakże, ponieważ nagłówki są technicznie niewrażliwe na wielkość liter, powinno to być dobre w większości scenariuszy. – asleepysamurai

1

Być przykładem może wyjaśnić więcej:

// single field is set 
res.setHeader('content-type', 'application/json'); 

// multiple files can be set 
res.set({ 
    'content-type': 'application/json', 
    'content-length': '100', 
    'warning': "with content type charset encoding will be added by default" 
    }); 
+3

Uwaga: powinno być "przecinkiem" zamiast "dwukropkiem" w przykładzie 'setHeader' powyżej –

+0

Pomiędzy właściwościami znajduje się przecinek. Dwukropek (:) jest sposobem javascriptu oddzielającego wartość od jego właściwości. Więc wiem, że to prawda. Proszę sprawdzić i daj mi znać, jeśli kod nie działa. Dzięki – Ghafoor

+1

@Ghafoor, ale natywna funkcja 'res.setHeader' węzła (https://nodejs.org/docs/v0.4.0/api/http.html#response.setHeader) otrzymuje dwa argumenty (' name', 'value' który są oddzielone przecinkiem). Mogłeś pomylić go z jednym argumentem 'object' (ale nawet wtedy brakuje' {} '). TL; DR: dwukropek powinien być przecinkiem – d2uX

Powiązane problemy