2014-01-17 2 views
8

Vor diesem Batzen ajax genannt, die [email protected]Laravel auf dem Weg vom Controller umleiten, wenn sie von AJAX

$.ajax({ 
    url:  '/dashboard/friends/' + id, 
    type: 'DELETE', 
    data: { src: 'show' }, 
    success: function(response) { 
    } 
}); 

nennt Wie kann ich return Redirect::route('dashboard.friends.index') innerhalb FriendsController nachdem der Löschvorgang abgeschlossen ist? Ich schätze, dass versucht wird, die Antwort zurück an AJAX zu geben, die nicht weiß, wie sie reagieren soll.

Ich könnte nur window.location.href = '/dashboard/friends' aber ich möchte eine Erfolgsmeldung auf die Sicht Flash, die ich nicht mit AJAX tun kann.

+0

Warum blinkt Ihre Erfolgsnachricht nicht in der Erfolgsfunktion, dann warten Sie 3 Sekunden, bevor Sie mit 'window.location.href = '/ dashboard/friends' weiterleiten? – Fractaliste

Antwort

1

Here is how I solved this issue auf eigene Faust. Für Funktionen wie das AJAX-Löschen eines Modells wird ein Bestätigungsmodal aufgerufen, das Löschen wird ausgeführt, die Nachricht wird geblinkt und auf die angegebene Route umgeleitet.

Nach der Einrichtung kann dynamisch erfolgen, indem die richtigen data Attribute an die ursprüngliche Löschtaste oder Verknüpfung übergeben werden.

-1
if(data.success){ 

    var loc = window.location; 
    window.location = loc.protocol+"//"+loc.hostname+"/admin/dashboard"; 
} 
2

Ich fand den einfachsten Weg, dies zu tun. Verwenden Sie einfach dieselbe URL erneut in Ihrem Ajax-Erfolg. angenommen, Freunde ist Ihr Routenname dann

$.ajax({ 
    url:  '/dashboard/friends/' + id, 
    type: 'DELETE', 
    data: { src: 'show' }, 
    success: function(response) { 
     window.location.href = "friends"; 
    } 
}); 

auf diese Weise können Sie einfach Redirect oder Flash-Sitzung Nachricht, wenn Sie möchten.

Verwandte Themen