2013-03-04 143 views
2

當成功響應ajax請求時,Window.location不起作用,它稱爲ajax請求,即成功函數。ajax請求後Window.location不起作用

當我在firefox上對調試器執行一步一步的window.location工作。

function login(){ 

var jason ={"usuario":document.getElementById("inputusuario").value, 
     "password": document.getElementById("inputpassword").value 
      }; 
      json =JSON.stringify(jason); 

      console.log(json); 

var onSuccess = function (data) { 
    console.log('Success'); 
    window.location ='salas.html' 

}; 
var onError = function (jqXHR, textStatus, errorThrown) { 
    console.log(jqXHR); 
    console.log(textStatus); 
    console.log(errorThrown); 
    alert("no se conecto"); 

}; 

var onBeforeSend = function() { 
    console.log("Loading"); 
}; 

var jason ={"usuario":document.getElementById("inputusuario").value, 
     "password": document.getElementById("inputpassword").value 
      }; 

      json =JSON.stringify(jason); 
$.ajax({ 

    url: "../reservaciones/index.php/login", 
    type:"POST", 
    data: json, 
    cache: false, 
    async: false, 
    beforeSend: onBeforeSend, 
    error: onError, 
    success: onSuccess 
}); 
}; 
+0

你的意思是你看到「成功」在控制檯中,但位置沒有發生改變? – 2013-03-04 17:04:48

+2

「不起作用」是什麼意思?你有錯誤嗎?它是否會將您引導至您不期望的頁面? – 2013-03-04 17:04:55

+2

爲什麼使用ajax如果你要去另一個頁面? – Musa 2013-03-04 17:07:31

回答

1

我複製你的代碼完全,加入適當的元素,和它的工作就好了。

這是你的代碼,如:jsFiddle

嘗試這些:

  嘗試window.location.assign()。這已被稱爲解決這個問題。

  2.嘗試運行async: true。從你的代碼中,我看不到爲什麼你想運行false,有時會導致計時問題。

+0

我嘗試window.location.assign()並不工作,但在網上搜索我使用這個函數事件.preventDefault();它只適用於Chrome,但Firefox不識別該功能。 – moynardos 2013-03-05 15:48:13

+0

@moynardos你嘗試過'返回false;'? – ThinkingStiff 2013-03-05 21:48:56

0

你錯過了';'在

了window.location =「salas.html」