2016-12-02 21 views
1

Hallo Ich versuche einen Weg zu finden, um die URL einer umgeleiteten Webseite zu bekommen.JS - Wie bekomme ich URL von Redirect

Ex/Ich gebe eine URL in meinen Webbrowser ein, "http: foo.com", und es leitet mich zu "http://foo.com/bar" um.

Wie kann ich fetch oder etwas anderes verwenden, um "http://foo.com/bar" an mich zurückzusenden? (Die Website, von der ich versuche, die URL zu erhalten, wurde von der CORS-Richtlinie blockiert: Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. "

Bitte und danke im Voraus für Ideen/Lösungen.

Antwort

0

Sie können nicht. XMLHttpRequest und fetch leise Umleitungen folgen, und keine Informationen über die endgültige URL sind danach im Objekt zur Verfügung.

Auch wenn diese Informationen zur Verfügung, würde die Same Origin Policy verhindern, dass Sie Zugriff darauf (wie the error message indicates).


Verwenden Sie stattdessen eine serverseitige Technologie.

+0

Können Sie eine serverseitige Technologie dafür empfehlen? Ich versuche es tatsächlich innerhalb eines seneca.js Microservice. Entschuldigung Wenn ich weiter erklärt hätte. – KMongiello

+0

Sie können 'redirect' auf eine andere Behandlung mit Fetch setzen. https://fetch.spec.whatwg.org/#requestredirect Bei einer erfolgreichen Antwort können Sie auch die finale URL ermitteln, indem Sie das Antwortobjekt untersuchen. – Brad

+0

Wenn Sie es in Seneca auf Node.js tun würden, würden Sie nicht die CORS-Fehlermeldung auslösen, die ein Browser-spezifischer Fehler ist. Sie sollten dazu in der Lage sein, Node zu verwenden. – Quentin

-1

Auf "http://foo.com/bar" möchten Sie die aktuelle URL erhalten, "http://foo.com/bar" ist das? wenn ja, mit Javascript Verwendung:

alert(location.href); 

Wenn Sie jedoch die vorherige url „http://foo.com/“ erhalten möchten (Referal, bevor die Umleitung), dann müssen Sie eine serverseitige Sprache verwenden.

Oder können Sie eine Server-Site Sprache verhindern verwenden, wenn Sie Ihre Umleitungsmethode ändern, um die Rückseite URL in einem Abfragezeichenfolgeflag enthalten, von „http://foo.com/“ Umleitung zu „http://foo.com/bar?back=http%3A%2F%2Ffoo.com%2F“ und so etwas wie https://stackoverflow.com/a/901144/271433 benutzen Sie die Back-Parameter und Decodierung zu erhalten

+0

Danke für Ihre Mühe, aber das ist nicht, was ich gefragt habe. Entschuldigung dafür, zu vage zu sein. Ich habe versucht, die URL einer Weiterleitung von einer 3rd-Party-Site durch eine http-Anfrage zu erhalten. Ich konnte es einfach implementieren, indem ich es serverseitig ausführte. – KMongiello

+0

Ah ja, das müsste serverseitig sein, aber beachten Sie, dass Firewalls manchmal Referral-Header entfernen können. Sie sollten das auch behandeln. –