Warum Ihr Link Daten verliert: Parameter und Fragmente korrigieren
Unterscheiden Sie & und # in URLs, vermeiden Sie doppelte Kodierung und prüfen Sie mit WikiURL den Link, den Sie tatsächlich teilen.

Eine geöffnete Seite erhält nicht immer die erwarteten Daten
Sie haben einen Link zur Suche nach Kaffee und Tee vorbereitet. Die Seite öffnet sich, doch die Ergebnisse passen nicht. Prüfen Sie vor Schuldzuweisungen an Server oder Kurzlinkdienst die tatsächlich geteilte Adresse. Im erfundenen Beispiel steht q=cafe&te bei üblicher Interpretation von Formularparametern nicht für einen einzigen Wert cafe&te: & trennt Einträge. Außerdem kennzeichnet #precios ein Fragment. Ersetzen Sie example.invalid durch eine eigene Seite, die diese Abfrage unterstützt, bevor Sie eine echte Adresse testen.
Teilen Sie die Diagnose in drei Fragen auf: Welche Seite soll sich öffnen, welche Daten soll sie erhalten und welcher Teil soll danach angezeigt werden? Kopieren Sie die URL des Links, nicht nur die sichtbare Buttonbeschriftung. Speichern Sie vor Änderungen eine Referenzversion. Diese Anleitung empfiehlt, die Bestandteile und anschließend das Ergebnis mit WikiURL zu prüfen; sie verspricht weder, dass jede Website q versteht, noch dass eine erfolgreiche Antwort korrekte Suchergebnisse bedeutet.
https://example.invalid/buscar?q=cafe&te#preciosGehört das kaufmännische Und zum Text, darf es kein Trenner sein
Für die wörtliche Suche nach cafe & te gehört das kaufmännische Und zum Wert von q. Übergeben Sie beim Erstellen mit URLSearchParams unkodierten Text; die Serialisierung stellt dieses Zeichen als %26 dar. MDN erklärt, dass diese Schnittstelle bei der Textausgabe die Formularkodierung anwendet und Leerzeichen als + darstellt. Ersetzen Sie deshalb aber nicht jedes kaufmännische Und einer URL: Manche trennen absichtlich Parameter.
Das JavaScript-Beispiel erstellt die Adresse aus einer Basis, setzt den Suchwert und fügt das Fragment getrennt hinzu. Führen Sie es lokal in einer JavaScript-Umgebung aus, um das Ergebnis ohne Anfrage an die erfundene Domain zu sehen. Wenn Sie nicht programmieren, verwenden Sie den von Ihrer Suchseite erzeugten Link, statt Text manuell zusammenzusetzen. Vergleichen Sie den erwarteten Wert mit den angezeigten Ergebnissen; %26 im Link beweist nicht, wie eine konkrete Anwendung die Daten verarbeitet.
const url = new URL("https://example.invalid/buscar");
url.searchParams.set("q", "cafe & te");
url.hash = "precios";
console.log(url.href);
// https://example.invalid/buscar?q=cafe+%26+te#preciosDas Fragment ist kein vom Server empfangener Parameter
MDN dokumentiert, dass der Teil hinter # vom Client verarbeitet und beim Abruf der Ressource nicht an den Server geschickt wird. Eine Seite kann ihn für den Sprung zu einem Abschnitt wie precios oder für anderes Anwendungsverhalten nutzen. Bei q=cafe#te ergänzt te daher nicht den Wert, den der Server in dieser Anfrage erhält. Soll # Bestandteil des Suchtexts sein, steht es innerhalb des Werts als %23, wie die dritte Adresse zeigt.
Prüfen Sie beide Wirkungen getrennt: Die Suche muss die gewünschten Ergebnisse anzeigen und das Fragment den gewünschten Ort erreichen. Der Abschnitt muss existieren oder die Anwendung das Fragment erkennen. Ein Prüfer, der die Website vom Server aus abruft, bestätigt für sich allein keinen Sprung des Browsers zu einem Abschnitt. Löschen Sie auch nicht alle Fragmente als allgemeine Lösung: Dabei könnte genau der Teil verschwinden, den die empfangende Person benötigt.
https://example.invalid/buscar?q=cafe%23te#preciosDen Wert einmal kodieren, nicht die ganze Adresse
RFC 3986 unterscheidet Komponententrennzeichen von Daten und warnt vor mehrfachem Kodieren oder Dekodieren derselben Zeichenfolge. Übergeben Sie cafe%26te als bereits kodierten Text an eine Funktion, die einen unkodierten Wert erwartet, kann das Prozentzeichen zu %25 und das Ergebnis zu %2526 werden. Damit entsteht eine weitere Ebene; die gewünschte Suche wird nicht automatisch erhalten. Die beiden Beispielzeilen helfen, diese Veränderung zu erkennen.
Die Korrektur hängt vom Ursprung der Daten ab. Menschlich eingegebenen Text übergeben Sie unkodiert an die Schnittstelle zum Aufbau der Parameter. Eine vollständige gültige URL behandeln Sie nicht als einzigen Wert, um die ganze Adresse erneut zu kodieren. Dokumentieren Sie die Eingaben jeder Funktion oder jedes Formulars. Vermeiden Sie globale Ersetzungen von %, & oder #: Sie könnten richtige Trenner, nötige Parameter oder unbeabsichtigt andere Pfade verändern.
q=cafe%26te
q=cafe%2526teWikiURL für die Antwort nutzen, den Browser für den Inhalt
Fügen Sie eine echte öffentliche Adresse in den URL-Prüfer von WikiURL ein. Prüfen Sie den zurückgegebenen HTTP-Status und das endgültige Ziel. Die Implementierung fragt vom Server aus ab und verfolgt Weiterleitungen; das hilft, unerwartete Ziele zu finden. Geben Sie keine Verwaltungslinks, Passwörter oder Adressen mit privaten Daten ein. Prüfen Sie nicht example.invalid aus unseren Beispielen: Die Domain dient hier als erfundenes Ziel.
Öffnen Sie die echte Version zusätzlich im Browser und kontrollieren Sie Suche und Abschnitt. Eine erfolgreiche Antwort kann die Seite laden, ohne den erwarteten Filter anzuwenden. Vergleichen Sie bei Weiterleitungen die Parameter mit der Referenz und beobachten Sie das Fragment im Browser. Der Prüfer interpretiert weder die Anwendungslogik noch bescheinigt er Sicherheit oder Zugriffsrechte eines Benutzerkontos. Ziel ist, die Antwortbefunde mit einer Funktionsprüfung zu verbinden.
Die Kopie testen, die eine andere Person erhalten wird
Fügen Sie den fertigen Link in den vorgesehenen Kanal ein und öffnen Sie diese Kopie vor einer breiten Verteilung. Prüfen Sie, ob ein Satzschlusspunkt mitkopiert wurde, ein Teil fehlt oder sichtbarer Text mit dem Ziel verwechselt wurde. Soll der Inhalt öffentlich sein, testen Sie ohne Abhängigkeit von Ihrer Administratorsitzung. Bei einem QR prüfen Sie neben der Quelldatei auch die beim Scannen angezeigte Adresse.
Führen Sie ein kleines Protokoll: ursprüngliche Adresse, erwarteter Suchwert, geplantes Fragment, geteilte URL und beobachtetes Ergebnis. Bei Fehlern korrigieren Sie den konkreten Bestandteil und wiederholen den Test. Veröffentlichen Sie nur die geprüfte Version. So unterscheiden Sie Fehler beim Parameteraufbau, zielverändernde Weiterleitungen und Browserverhalten, ohne aus einem sich öffnenden Link eine Garantie für den Erhalt aller vorgesehenen Daten abzuleiten.