Hallo Leute, ich habe Probleme mit dem Senden einer Anfrage an eine URL, die der Umleitung zu einer anderen vorausgeht, nachdem ich 301
erhalten habe.
request('http://www.tanitbar.ru/menu.aspx?cat=6', function (error, response, body) {
console.log('error:', error);
console.log("response", response);
});,
1) Die erste Antwort enthält einen Statuscode gleich 301 (das bedeutet, dass wir vom Header location
zur URL umleiten sollten, aber es enthält codierte russische Buchstaben: СалаÑÑ
2) Da diese URL ( http://www.tanitbar.ru/СалаÑÑ
) nicht existiert, erhalte ich den Fehler 404
Erwarten Sie den HTML-Hauptteil der Seite mit dem Statuscode gleich 200
Ich bekomme jetzt 404
curl
funktioniert einwandfrei und leitet nach Erhalt von 301 zu einer anderen URL weiter
curl "http://www.tanitbar.ru/menu.aspx?cat=6" -L
, (Curl leitet standardmäßig nicht um, daher müssen wir die Option -L
übergeben)
Ich denke, wir sollten den Standort-Header vor der Umleitung irgendwie decodieren (übrigens konnte ich ihn nicht von Hand decodieren).
Der Inhalt der Seite konnte nicht von JS empfangen werden.
| Software | Ausführung
| ---------------- | -------
| Anfrage |^2.83.0
| Knoten |8.7.0
| npm |5.4.2
| Betriebssystem | Linux, Ubuntu
Vielen Dank im Voraus!
Machen wir überhaupt irgendetwas mit der Kodierung dieses Headers? Ich denke, wir bekommen es einfach vom Parser von Node.js richtig.
@mikeal https://github.com/nodejs/node/issues/17390 könnte verwandt sein
Übrigens, das Buffer.from(location, 'binary').toString('utf8')
funktioniert bei mir.
Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität gab. Es wird geschlossen, wenn keine weiteren Aktivitäten stattfinden. Vielen Dank für Ihre Beiträge.
Hilfreichster Kommentar
@mikeal https://github.com/nodejs/node/issues/17390 könnte verwandt sein
Übrigens, das
Buffer.from(location, 'binary').toString('utf8')
funktioniert bei mir.