Facebook-Callback hat mit dem Anhängen von #_=_
Rautenunterstrich in der Rückgabe-URL
Weiß jemand, warum? Was ist die Lösung?
Facebook-Callback hat mit dem Anhängen von #_=_
Rautenunterstrich in der Rückgabe-URL
Weiß jemand, warum? Was ist die Lösung?
Mit Angular und Angular Ui Router, können Sie dieses Problem beheben
app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
// Make a trailing slash optional for all routes
// - Note: You'll need to specify all urls with a trailing slash if you use this method.
$urlRouterProvider.rule(function ($injector, $location) {
/***
Angular misbehaves when the URL contains a "#_=_" hash.
From Facebook:
Change in Session Redirect Behavior
This week, we started adding a fragment #_=_ to the redirect_uri when this field is left blank.
Please ensure that your app can handle this behavior.
Fix:
http://stackoverflow.com/questions/7131909/facebook-callback-appends-to-return-url#answer-7297873
***/
if ($location.hash() === '_=_'){
$location.hash(null);
}
var path = $location.url();
// check to see if the path already has a slash where it should be
if (path[path.length - 1] === '/' || path.indexOf('/?') > -1) {
return;
}
else if (path.indexOf('?') > -1) {
$location.replace().path(path.replace('?', '/?'));
}
else {
$location.replace().path(path + '/');
}
});
// etc ...
});
});
Kürzlich wurde eine Änderung in der Art und Weise eingeführt, wie Facebook Sitzungsumleitungen handhabt. Siehe "Änderung des Verhaltens bei der Sitzungsumleitung" in der dieswöchigen Operation Entwicklerliebe Blog-Post für die Ankündigung.
Ein Workaround, der bei mir funktioniert hat (unter Verwendung von Backbone.js), war das Hinzufügen von "#/" am Ende der an Facebook übergebenen Weiterleitungs-URL. Facebook wird das bereitgestellte Fragment behalten und nicht sein eigenes "_=_" anhängen.
Nach der Rückkehr entfernt Backbone den "#/"-Teil. Für AngularJS sollte das Anhängen von "#!" an die Rückgabe-URL funktionieren.
Beachten Sie, dass die Fragmentkennung der ursprünglichen URL bei der Weiterleitung (über die HTTP-Statuscodes 300, 301, 302 und 303) von den meisten Browsern beibehalten wird, es sei denn, die weitergeleitete URL hat ebenfalls eine Fragmentkennung. Diese scheint ein empfohlenes Verhalten zu sein .
Wenn Sie ein Handler-Skript verwenden, das den Benutzer an eine andere Stelle weiterleitet, können Sie hier "#" an die Weiterleitungs-URL anhängen, um den Fragmentbezeichner durch eine leere Zeichenfolge zu ersetzen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Ich stehe auch vor dem gleichen Problem: stackoverflow.com/q/7190184/912011 Ich denke jedoch, dass es mit der Firefox-Version zusammenhängen könnte.
0 Stimmen
Hat jemand eine Lösung für dieses Problem gefunden? Die Standard-Facebook-Connect-Sdk funktioniert nicht.
0 Stimmen
Das Beste, was wir tun können, bis Facebook diesen Fehler korrigiert (oder ihre Dokumentation) ist in meiner Antwort unten. Erstens, richten Sie Ihre Login-URLs in Übereinstimmung mit der Dokumentation ein. Und zweitens, fügen Sie eine schnelle Header-Javascript-Hack, um dies in Ihrem Code zu vermeiden. Dies wird gut abnehmen, wenn Facebook jemals dieses Problem behebt.
0 Stimmen
Irritierender FB-API-Fehler. Er bremst meine AJAX-Navigation :(
38 Stimmen
Irgendeine Idee wie Facebook fügt diese Zeichen an? Facebook leitet zu meinem Handler weiter, wo ich dann die Umleitung zur Rückgabe-URL verwalte, aber die Zeichen werden immer noch an die URL angehängt.
0 Stimmen
developers.facebook.com/bugs/318390728250352 Dieser Link könnte Sie zum Lachen bringen
6 Stimmen
@BenFoster Ich denke, wenn Sie Fiddler oder ähnliches verwenden, werden Sie feststellen, dass, wenn FB auf Ihren Handler zurückgreift, die
#_=_
vorhanden ist, dann kann man zwar eineResponse.Redirect
zu dem, was Sie eigentlich tun wollen, der Browser behält den Hash bei Deshalb ist es auch nur die Client-seitig unten vorgeschlagene Abhilfemaßnahmen, die funktionieren werden.0 Stimmen
Ich habe noch keine Antwort auf folgende Fragen gefunden por qué wird dies angehängt. Die in diesem Thread enthaltenen Facebook-Posts sind nicht hilfreich.
0 Stimmen
Weiß jemand, warum ich das bekomme und sonst NICHTS?
2 Stimmen
2016 März, passiert immer noch :P
2 Stimmen
April 2016 noch stattfinden. -_-
1 Stimmen
Mai 2016 noch passiert :-)
2 Stimmen
Zu Ihrer Information, es wird nicht behoben werden
25 Stimmen
2017, was zum Teufel
7 Stimmen
Mai 2017, noch....
2 Stimmen
Juni 2017 :) immer noch passiert. #_=_
1 Stimmen
Juli 2017... Blabla... Blabla
1 Stimmen
August 2017 Gleiche Scheiße
1 Stimmen
November 2017, nichts hat sich geändert
1 Stimmen
Dezember 2017, STILL HAPPENING
2 Stimmen
Willkommen im Jahr 2018! Ja, es geht weiter.
1 Stimmen
Februar 2018, der Fehler tritt immer noch auf...
6 Stimmen
März 2018 ja, es geht weiter
2 Stimmen
31. Mai 2018 , #_=_ FTW!
0 Stimmen
27. Juli 2018. Sie findet immer noch statt!
2 Stimmen
1. August 2018 noch stattfinden! :(
0 Stimmen
29. September 2018... Grrr
0 Stimmen
Oktober 2018 findet immer noch statt :(
1 Stimmen
Jan 2019 findet noch statt
1 Stimmen
April 2019 findet noch statt :)
1 Stimmen
August 2019, keine Neuigkeiten zu diesem Thema x)
1 Stimmen
April 2020 und ich sehe es immer noch
0 Stimmen
Weihnachten 2020 findet immer noch statt :(
0 Stimmen
Februar 2021 ist für mich immer noch ein Problem
0 Stimmen
April 2021, v10.0 findet noch statt
0 Stimmen
Für mich sieht das tatsächlich wie ein Browser-Bug aus, denn das #_=_ kommt von der ersten Weiterleitung, aber die zweite Weiterleitung hat keinen Hash, so dass es wie eine Schwachstelle aussieht, dass der Hash, der in einem Satz von Weiterleitungen gegeben wird, auch bei weiteren Weiterleitungen beibehalten wird (solange die letzte keinen Hash hat).
0 Stimmen
Februar 2022, es geht weiter! <(^.^<)
0 Stimmen
Ich habe dich im September 2022 gefunden, denn warum passiert das nicht?