Request: Die Anfrage wird aufgrund des codierten Standortheaders nicht umgeleitet

Erstellt am 2. Jan. 2018  ·  3Kommentare  ·  Quelle: request/request

Zusammenfassung

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.

Einfachstes Beispiel zum Reproduzieren

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

Erwartetes Verhalten




Erwarten Sie den HTML-Hauptteil der Seite mit dem Statuscode gleich 200

Aktuelles Verhalten



Ich bekomme jetzt 404

Mögliche Lösung



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).

Kontext



Der Inhalt der Seite konnte nicht von JS empfangen werden.

Ihre Umgebung

| Software | Ausführung
| ---------------- | -------
| Anfrage |^2.83.0
| Knoten |8.7.0
| npm |5.4.2
| Betriebssystem | Linux, Ubuntu

Vielen Dank im Voraus!

stale

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.

Alle 3 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen