JavaScript: Ajax: Weiterleitung bei success?
ich habe ein normales HTML-form und ajax dahinter mit einer div wo text ausgegeben wird. bei Erfolg soll jetzt aber eine weiterleitung stattfinden, wie mach ich das ? einfach mit header in der php-datei geht ja nicht...
so sieht das ajax aus :
2 Antworten
![](https://images.gutefrage.net/media/user/Verelat777/1657197095528_nmmslarge__0_0_500_500_77a0f43d5804c908f40c8a1b0c260400.jpg?v=1657197096000)
Folgender JavaScript-Code führt eine Weiterleitung durch:
window.location.href = "https://beispiel.de/";
window.location.href beinhaltet die aktuell aufgerufene URL. Man braucht auch lediglich der Variable eine neue URL zuzuweisen.
Um also nach erfolgreich ausgeführter AJAX-Anfrage den Benutzer weiterzuleiten, schreibt man dies einfach in die entsprechende Funktion:
jQuery AJAX
$.ajax({
url: "beispiel.txt",
success: function(text) {
console.log(text);
window.location.href = "https://beispiel.de/";
})
});
Fetch-API
fetch("beispiel.txt")
.then(response => response.text())
.then(text => {
console.log(text);
window.location.href = "https://beispiel.de/";
});
XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
console.log(text);
window.location.href = "https://beispiel.de/";
}
};
xhr.open("GET", "beispiel.txt", true);
xhr.send();
Nachdem die Textdatei beispiel.txt geladen wurde, wird der Textinhalt mittels console.log() in der Konsole ausgegeben und der Benutzer wird automatisch zur Seite https://beispiel.de/ weitergeleitet.
In den genannten Beispielen habe ich den Code zur Fehlerbehebung der Einfachheit halber ausgelassen.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
So Vielleicht:
$.ajax({
url: 'your-url-here',
success: function(response) {
// redirect to new page
window.location = 'http://www.example.com/new-page';
}
});
![](https://images.gutefrage.net/media/user/TimMagFussball/1535299982210_nmmslarge__0_275_952_952_052b06196d8f911c12daa454ff8d0e01.jpg?v=1535299982000)
mein ajax sieht so aus : https://pastebin.com/qcGKVESE