2016-08-11 20 views
-2

我有一個登錄表單時,他在用戶登錄與以學員爲screen.php阿賈克斯jQuery的重定向不工作

的Ajax腳本來重定向

$.ajax({ 
     url: "controller.php",method: "POST", 
     data: { loginData: $("#loginForm").serialize(),'action': 'login' }, 
     dataType: "text", 
     success: function(response) { 
     $("#showMessage").html(response); 
     if (response == 'success') {// response coming as success but not redirecting 
// redirecting script 
     } 
     } 
    }); 
+2

我不是一個PHP程序員,但看起來開放的SQL注入! –

+0

我是一名PHP開發人員,我確認;-) –

回答

1

你可以試試下面的方法對重定向

// similar behavior as an HTTP redirect 
window.location.replace("http://stackoverflow.com"); 

// similar behavior as clicking on a link 
window.location.href = "http://stackoverflow.com"; 
4

您時,您不能使用header()重定向使用ajax。相反,如果請求已成功處理,則必須在ajax的JavaScript部分中重定向。例如參見How to redirect to another webpage in JavaScript/jQuery?

請注意,您將不得不從PHP腳本(例如json)發回信息,以便您可以在javascript中採取適當的操作。

除此之外:

  • 你有一個SQL注入的問題,您應該使用事先準備好的聲明,而不是直接注入變量納入你的查詢。
  • 您不應該使用md5()進行密碼散列。例如見How can I store my users' passwords safely?
+0

完整的網址或網頁網址imean amerytech.net/learningcurve/participant-screen.php或參與者screen.php ....? @ jeroen –

2

header()在jQuery的不支持,你需要用戶windows.location.href

window.location.href="your url"; 
+0

沒有任何其他建議 –

+0

完整的網址或網頁網址imean http://amerytech.net/learningcurve/participant-screen.php或參與者screen.php ....? –

-1

我得到了我的解決方案

$.ajax({ 
 
url: "controller.php", 
 
method: "POST", 
 
data: { loginData : $("#loginForm").serialize(), 'action':'login'}, 
 
dataType: "json", 
 
success: function (response) { 
 
\t if(response["success"]==true) 
 
\t { 
 
\t \t $("#showMessage").html(response['message']); 
 
\t \t location = '/learningcurve/participant.php?loginid='+response["id"]; 
 
\t \t window.open(location); 
 
\t }else{ 
 
\t \t $("#showMessage").html(response['message']); 
 
\t } 
 
}, 
 
error: function (request, status, error) { 
 
\t $("#showMessage").html("OOPS! Something Went Wrong Please Try After Sometime!"); 
 
} 
 
}); 
 
return false;

我使用的數據類型的文本替換與json