回答
您可以在AJAX成功塊中使用window.location將用戶重定向到目標頁面。
嗨Wasim,這個實現對單個Ajax請求很有用。但在我的應用程序中,許多Ajax請求都在那裏。例如一個單頁面有15到30個Ajax請求。這將很難處理每個請求。需要用最少的代碼處理所有的ajax請求。 –
我的方式做到這一點:
在服務器方:
define('BASE_URL','http://www.yourdomain.com');
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){
// if it's an ajax request
$json['success'] = 1;
$json['redirect'] = BASE_URL.'/logout';
echo json_encode($json);
}else{
// if it's an non ajax request
}
在客戶端使用jQuery:
$.ajax({
type: "POST",
url: 'www.yourdomain.com',
data: {test: 1},
complete: function(e, xhr, settings){
switch(e.status){
case 500:
alert('500 internal server error!');
break;
case 404:
alert('404 Page not found!');
break;
case 401:
alert('401 unauthorized access');
break;
}
}
}).done(function(data) {
var obj = jQuery.parseJSON(data)
if (obj.success == 1){
var url = obj.redirect;
location.href = url;
}
});
嗨,這個實現對於單個Ajax請求很好。但在我的應用程序中,許多Ajax請求都在那裏。例如一個單頁面有15到30個Ajax請求。這將很難處理每個請求。需要用最少的代碼處理所有的ajax請求。 –
我都在做類似的事情Zend/PHP項目。不幸的是,我對Java並不熟悉,在那裏我只能提出基本的方向。
默認情況下,XMLHttpRequest執行重定向。因此,如果您在ajax請求期間執行重定向,XMLHttpRequest將執行它,而不會讓您知道發生重定向。至少我發現無法捕捉到這種情況並以某種方式處理它。因此,在服務器端,我重寫了重定向方法。假設你也可以在Java中做類似的事情。一旦請求來自ajax(您可以添加一個特定的標頭到您的ajax請求並在服務器上檢查它),您可以返回一個不同於Location
標頭的標頭。例如,New-Location
,並且沒有實際的重定向。只需停止請求執行。
在客戶端,您可以使用jQuery.ajaxSetup一次爲所有ajax請求配置全局處理程序。 這裏是你如何可以添加一個頭的所有請求與.ajaxSetup
:
$.ajaxSetup({
headers: {
XHTTPRequest: 'true'
}
});
此外,您可以設置一個全局ajaxSuccess和ajaxError處理程序。它們將在單獨的ajax請求的任何成功/錯誤處理程序之前執行。在全局AJAX的成功,你可以從作爲第三個參數回調函數傳遞xhr
對象的頭部,並做了重新定位:
var newLocation = xhr.getResponseHeader("New-Location");
if(newLocation)
document.location = newLocation;
基本上,你可以返回,而不是頭特殊對象或找一些其他的方式來傳遞新的位置給你的ajaxSuccess
回調。
Thankyou @FAngel。我會研究這方面的內容。 –
你需要在ajax函數中指定數據類型是json。
$.ajax({
url: url,
type: "get",
dataType: "json",
success: function(data){
},
error: function(){
// error operation
},
complete: function(){
// complete operation
}
});
數據類型只是json,沒有什麼區別 –
- 1. 如何使用nginx將一個頁面請求重定向到其他頁面
- 2. 如何通過使用JSON重定向到其他頁面
- 3. 如何自動重定向到我的WebApp的其他頁面
- 4. 如何使用mod_rewrite將「www.somedomain.com/folder1/demo.jpg」請求重定向到其他頁面?
- 5. 如何從索引頁面重定向到其他頁面
- 6. 除.htaccess之外的任何其他方式重定向請求
- 7. 重定向到其他頁面
- 8. 如何重定向到jquery mobile中的其他頁面
- 9. 如何將用戶重定向到CMS內的其他頁面
- 10. 的.htaccess,如何任何.JPG頁面重定向到其連接頁面(HTML)
- 11. 帶重定向的頁面jQuery ajax請求,重定向我的整個頁面。
- 12. 如何將Ajax請求重定向到Java登錄頁面
- 13. 如何使用ajax發佈請求重定向到頁面
- 14. 如何將頁面重定向到其他活動?
- 15. 如何在表單提交後重定向到其他頁面?
- 16. 如何在fb登錄後重定向到其他頁面
- 17. 如何自動重定向到其他頁面
- 18. Outlook Web Add-in:如何重定向到其他頁面?
- 19. 重定向到其他頁面如果點擊離開頁面
- 20. IIS:如何將一個頁面的請求重定向到另一個頁面?
- 21. 如何將特定頁面重定向到我的404頁面?
- 22. 如何保留JavaScript變量,即使我重新加載或重定向到任何其他頁面
- 23. htaccess的重定向到其他域除了特定的請求
- 24. 我如何給幻燈片的鏈接重定向到其他頁面
- 25. 將直播頁面重定向到Flask中的其他頁面
- 26. 我的javascript函數不重定向到其他頁面
- 27. 如何重定向到其他頁面並在該頁面上觸發事件?
- 28. 只將一個非www主頁重定向到www版本,而不重定向任何其他頁面
- 29. 將所有頁面請求重定向到一個頁面
- 30. 如果找不到請求的頁面或asp.net發生任何錯誤,我們如何重定向到任何默認頁面
什麼是您的服務器端語言?你爲什麼認爲這沒有發生? –
我的服務器端語言是java,請求類型是json。它正在重定向到登錄頁面(如果我是螢火蟲觀察員)。但屏幕沒有重新加載。 –
@GRM你使用jQuery或其他庫嗎? –