2013-01-08 14 views
9

Ich habe versucht, dies nun für eine Weile zu lösen, aber ich kann itworking nicht bekommen. Wenn ein Benutzer auf einen Link klickt, muss er bestätigen, dass er diese Aktion ausführen möchte. Dann wird ein Ajax-Ruf getätigt. Das Skript, das aufgerufen wird, funktioniert einwandfrei und gibt eine Zeichenfolge zurück, an die umgeleitet werden soll.window.location.href auf Ajax-Erfolg nicht funktioniert

ich einige Beiträge hier auf Probleme mit window.location gesehen haben, Buth keiner von ihnen Mine lösen könnte.

Mein Code:

function confirm(a,b,c){ 
     var r=confirm("Are you sure to do this?"); 
     if(r==true){ 
      $.ajax({ 
       type: "POST", 
       url: "/process-action.php", 
       async: false, 
       data: {a:a,b:b,c:c}, 
       success: function(data){ 
        window.location.href = data; 
       } 
      }); 
     } else { 
      return false; 
     } 
    } 

Wenn ich alert(data) statt window.location.href = data tun kann ich sehen, dass die richtigen Daten übergeben werden. Zum Beispiel/Benutzer/Homepage. Die Umleitung findet jedoch nicht statt.

Wenn der relativen Pfad mit der gesamten URL zu ersetzen versucht, aber das hat nicht funktioniert.

+0

try location.href = data – Andy

Antwort

16

Versuchen Sie es mit assign() statt:

window.location.assign(data); 

window.location.href ist eine Eigenschaft, keine Methode.

+0

Danke, das hat geklappt! – user1662927

+0

nicht für mich arbeiten :(in IE 11 – Reena

+0

@reena es sollte funktionieren Überprüfen Sie die Konsole für Fehler –

1

Ort assign() Methode

The assign() method is supported in all major browsers. 
-1

Sie können auch window.location = "someurl" verwenden;

+0

Dieser Ansatz funktioniert nicht im modernen Chrome Mobile Browser auf Android. .Assign() Ansatz von Rory McCrossan Antwort sollte stattdessen verwendet werden. –

0

können Sie diese

<form action="submit.php" onsubmit="return false;" method="post">

und Ihre gleiche Skript Arbeit wird verwenden.

+0

Bitte erläutern Sie mehr – Panther

+0

, wenn Sie Formular unter Verwendung von Ajax senden, als Sie Lage bei Erfolg nicht neu laden können, da das Formular einreichen wird, um eine Aktion zu geben. so haben wir add ons onmitsubmit so Formular wird nicht übergeben und Sie können Daten mit Ajax senden und Seite erfolgreich ohne Fehler neu laden. –

Verwandte Themen