2017-05-23 62 views
1

首先,我是一名中國學生。我會盡力解釋我的問題,但我的英語不太好。非常抱歉。 在我的登錄網頁上,我將使用ajax post數據(id,passwd...)到路線。畢竟確認後,如果數據是正確的,登錄網站將重定向到另一個網絡路線。但是控制器功能不能重定向。像:ajax發佈到laravel無法重定向,表單提交可以重定向

return redirect('wx/setdev'); 
//not work in controller function ,but work in route function 

如果我提交表單到控制器,控制器可以重定向到網絡的路線,但ajax不能。

$.post("{{route('cfmlogin')}}",{ 
    _token : "{{csrf_token()}}", 
    user : $('#num').val(), 
    passwd : $('#passwd').val() 
}); 

我不知道爲什麼!請幫我解決一下這個。

感謝

+0

返回重定向() - > to()可能不起作用。但是你可以寫在你的情況下工作的阿賈克斯成功函數的重定向 –

回答

0

而不是返回一個重定向到Ajax響應,你必須返回的URL,讓AJAX回調函數重定向到URL。

所以,你需要改變

return redirect('wx/setdev'); 

return url('wx/setdev'); 

,並在您的jQuery阿賈克斯post,傳爲成功回調函數的第三個參數來重定向

$.post("{{route('cfmlogin')}}", { 
    _token : "{{csrf_token()}}", 
    user : $('#num').val(), 
    passwd : $('#passwd').val() 
}, function (data) { 
    window.location = data; 
}); 
+0

就像你說的。 AJAX無法應對http響應嗎?如果'返回重定向('wx/setdev')'laravel將發送html文件到ajax.Thanks爲您的答案。 –

+0

如果你做'return redirect('wx/setdev')'它會發送一個http 302響應給ajax,它不會發送html文件 – linktoahref

+0

$ .post(url,{},function(data){ alert(data)});'這將打印我重定向html文件的html代碼。 –