Mam problem podczas POSTingu do zasobu, który jest chroniony przez podstawowe uwierzytelnianie dostępu. Oto kod, którego używam @mikeal's request:
request.post({
uri: "http://user:password@mysite.com/resource",
json: {
"id": "1",
"par1": "a",
"par2": "b"
}
}, function (error, response, body) {
console.log(error);
console.log(response);
console.log(body);
});
Mam { [Error: Parse Error] bytesParsed: 0 }
w błędzie i undefined
zarówno w odpowiedzi, jak i treści. Jeśli usunę część „user:password”, otrzymam poprawnie komunikat 401 HTTP Basic: Access denied.
Czy wiesz, czy istnieje sposób na POST JSON do chronionego zasobu, tak jak w moim przypadku? Jeśli nie, wierzę, że będę musiał przejść do modułu http, ale zostawiam to jako ostatni zasób, ponieważ jest o wiele bardziej szczegółowy.
AKTUALIZACJA: Aby było to jak najprostsze, przeniosłem ten plik do nowego katalogu i wykonałem npm install request
. Problem zniknął, sprawdziłem, skąd pochodzi byteParsed
i stwierdziłem, że jest to „ogromne”, co jest wymagane przez ekspres, który miałem w katalogu, w którym przeprowadzałem ten test. Teraz trochę zdezorientowany.
2 odpowiedzi
Musisz dodać nagłówek do swojego żądania z tymi regułami:
http://en.wikipedia.org/wiki/Basic_access_authentication.
Zasadniczo musisz zakodować ciąg: nazwa użytkownika:hasło w base64 i dodać zakodowany ciąg w nagłówku http:
Autoryzacja: podstawowa „Base64(nazwa użytkownika:hasło)”
Nie wiem czy można dodać nagłówek za pomocą jquery lub javascript. Przepraszam.
Spójrz tutaj: http://api.jquery.com/extending-ajax/#Transports
Zrobiłem to tak:
var options = {
method: 'POST',
uri: 'http://your.url.com/',
form: {
field1: 'somevalue',
field2: 666.66
},
headers: {
'Authorization': 'Basic ' + new Buffer("username:password").toString('base64')
}
};
request(options, function(error, response, body) {
// do stuff
});
Podobne pytania
Nowe pytania
node.js
Node.js to oparte na zdarzeniach, nieblokujące, asynchroniczne środowisko wykonawcze we / wy, które korzysta z silnika JavaScript V8 firmy Google i biblioteki libuv. Służy do tworzenia aplikacji, które w dużym stopniu wykorzystują możliwość uruchamiania JavaScript zarówno po stronie klienta, jak i po stronie serwera, a zatem korzystają z możliwości ponownego wykorzystania kodu i braku przełączania kontekstów.