Cześć :)
mam problem ze skryptem, który jest odpalany w html po naciśnięciu przycisku. Otóż jak naciskam przycisk to zostaje uruchomiony skrypt w js, który wysyła (Fetch API) zapytanie do zdalnego serwera o plik JSON. Jak załaduje index.html bezpośrednio w przeglądarce to wszystko działa, ale jak ten html jest przesyłany przez node.js to zdalny serwer odpowiada kodem 429 (Too many requests).
Jak rozwiązać taki problem?
Ani JS ani Node za dobrze nie znam ale może na początek sprawdź jakimś narzędziem (w przeglądarece to po prostu developer tools) ile idzie zapytań do serwera.
Może Node wysyła więcej niż jedno z jakiegoś powodu (bug?)
Jednak wychodzi na to, że serwer zdalny blokuje takie zachowanie. Muszę zrobić tak, że Node pobiera JSON'a z serwera i odsyła go do klienta, który zrobił zapytanie.
edit:
Dla Node.js zrobiłem coś takieg (serwer reaguje na takie zapytanie: http://127.0.0.1:8080/www.getjson.com):
var urlGetJSON = (req.url).substr(1);
var jsonObject;
console.log('##GET: ' + urlGetJSON);
request(urlGetJSON, function (error, response, body) {
if (!error && response.statusCode === 200) {
jsonObject = JSON.parse(body);
console.log(jsonObject);
res.status(200).json(jsonObject);
}
});
Ale nie wiem jak poprawnie zwrócić odebranego JSON'a. Dać coś takiego:
res.writeHead(200, {"Content-Type": "text/json"});
res.write(jsonObject);
res.end();
?
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.