Korzystanie z pliku node.js i pakietu Request z przeglądarki (przez browserify) używam CORS do wykonania żądania HTTP GET w oddzielnej domenie.Jak wyłączyć opcję "withcredentials" w nagłówku HTTP za pomocą node.js i pakietu żądania?
Na serwerze, kiedy ustawić 'Access-Control-Allow-Origin'
do zamiennika '*'
, pojawia się następujący błąd na kliencie:
XMLHttpRequest nie może załadować .... A wieloznacznego „*” nie może być stosowany w Nagłówek "Access-Control-Allow-Origin", gdy znacznik poświadczeń ma wartość true. Pochodzenie "..." jest zatem niedozwolone.
Żądanie nagłówka HTTP wygląda następująco:
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Access-Control-Request-Headers:withcredentials
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:3000
Origin:http://localhost:9966
Pragma:no-cache
Referer:http://localhost:9966/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
więc wyraźnie, że problem jest Access-Control-Request-Headers:withcredentials
w nagłówku, prawda?
Aby móc to usunąć, muszę ustawić właściwość'concordentials 'obiektu' XMLHttpRequest 'na' false '. Jednak nie mogę dowiedzieć się, gdzie plik node.js lub Request tworzy obiekt "XMLHttpRequest" i jak mogę uzyskać do niego dostęp.
Dzięki.
To nie jest w docs, ale patrząc na drodze 'request' używa' http browserify', myślę, że powinieneś być w stanie zrobić 'req. withCredentials = false; 'przed wywołaniem' .write' lub '.end'. – loganfsmyth
@ loganfsmyth Dzięki za pomoc! Doprowadziło mnie to we właściwym kierunku. Odpowiedź zamieszczona poniżej. – smg