2014-06-24 11 views
7

Ich benutze Ui-Router in einer eckigen Website, die ich mache, aber kann es nicht bekommen Routen zu meinem Server zu ermöglichen. Ich habe facebook Oauth-Authentifizierung auf meinem Server, wo ich zu /auth/facebook navigieren und der Server wird auf fb umleiten, den Rückruf abfangen und den Client zurück zur Homepage umleiten.Angularjs UI-Router blockiert den Zugriff auf nicht-staatliche Routen

Es funktioniert gut bei der Navigation zu der /auth/facebook URL in einem Browser funktioniert es gut, aber UI-Router beobachtet Standort und fängt alle meine Standortänderungen ab.

Irgendwelche Ideen, wie ich eine URL-Anfrage machen kann umgehen dieAnweisung, um eine Route zu meinem API-Server zu ermöglichen? Ich habe versucht, Routenweiterleitungen mit dem Routeranbieter hinzuzufügen, aber es wird keinen Remoteanruf ausgelöst.

+0

In beiden Fällen die vollständige URL. – Jorg

+0

es ist eine lokale URL, also jetzt bin ich auf einem Entwicklungsserver, so dass seine "http: // localhost: 9000/auth/facebook" UI-Router-Zustände in der Form "http: // localhost: 9000/about" sind. Es funktioniert auch gut, wenn ich nur HTML5-Modus deaktivieren. – mrosales

+0

Ja, HTML5-Modus wäre meine nächste Frage gewesen. Angular entfernt den Hash-Knall und verwandelt 'index.html #/about/facebook' in'/about/facebook'. Wenn Sie es behalten möchten, können Sie möglicherweise etwas mit serverseitigem Zugriff wie htaccess tun. Sonst können vielleicht Angler Onroute Ereignisse ändern? – Jorg

Antwort

6

Dank an die Jungs von angular-dart: Als Abhilfe können Sie ein ng-Click-Handler erstellen könnte, die window.location.assign('/auth/facebook') der Router zu umgehen

+0

mit 'ng-click' funktionierte nicht für mich, also habe ich nur' ng-click' aufgerufen, um eine Funktion auf meinem scope aufzurufen, die '$ window.location.assign ('/auth/'+ provider); ' – mrosales

Verwandte Themen