1. 程式人生 > >form和ajax的重定向

form和ajax的重定向

form提交表單或者window.location.href=".......",後臺直接response.sendRedirect是可以重定向的。

但是ajax的提交,後臺response.sendRedirect是不能重定向的。測試如下:

$.ajax({
	url : "${base}/test/testAajaxRedirect",
	dataType : "json",
	async : false,
	success : function(data) {
	       alert("succuess");
	},
	error: function(XMLHttpRequest, textStatus, errorThrown){
	     console.info(textStatus);
	     console.info(errorThrown);
	     console.info(XMLHttpRequest);
	}
});

public void testAajaxRedirect(){
        redirect("/admin/login");
}
然後頁面報錯:

從報錯資訊的XMLHttpRequest我們能看出,其實它返回的是一個重定向的頁面,然後Ajax進行解析,因為不符合json格式所以報錯了。從這些能知道,後臺重定向之後,瀏覽器收到重定向要求,進行重定向,如果還有重定向要求,就再重定向,最終返回最後那個URL的東西,Ajax對這個進行解析。所以,Ajax的重定向不能是後臺直接重定向,而需要配合前端:後臺返回一個錯誤碼和要重定向的URL,要求重定向,然後頁面根據這個碼和URL進行重定向。

相關推薦

formajax定向

form提交表單或者window.location.href=".......",後臺直接response.sendRedirect是可以重定向的。 但是ajax的提交,後臺response.sendRedirect是不能重定向的。測試如下: $.ajax({ url :

請求轉發請求定向

tdi 之間 只知道 servlet 成了 區別 rep 發送請求 習慣 比喻: 請求轉發:A向B發送請求,想讓B幫忙完成一項工作,當B接收到請求後發現自己完成不了,於是B請C幫忙,C接收到B的請求後最終完成了該項工作,並把最後的結果返回給A。此過程A只發送了一次請求給B,

javaWeb中request請求轉發response定向

tdi exc dream cat ams src attribute utf col 1.訪問資源 運用forward方法只能重定向到同一個Web應用程序中的一個資源。 而sendRedirect方法可以讓你重定向到任何URL。 2.request.get Fo

Apache mod_rewrite實現HTTPHTTPS定向跳轉

告訴 ace mod iter bing space tac lai contain 當你的站點使用了HTTPS之後,你可能會想把所有的HTTP請求(即端口80的請求),全部都重定向至HTTPS(即端口443)。這時候你可以用以下的方式來做到:(Apache mod_rew

文件管理輸出定向

文件管理和輸出重定向alias rm=‘mv -t /app/‘tree 顯示目錄樹 - d 只顯示目錄 - L 層數 mkdir 創建目錄 -p 自動創建所需的個目錄 -v 顯

Nginx安裝與配置:默認虛擬主機、用戶認證域名定向

Nginx安裝 虛擬主機 重定向 用戶認證 一、Nginx安裝 1、下載並解壓安裝包 [root@zhulinux-02 ~]# cd /usr/local/src/ [root@zhulinux-02 src]# wget http://nginx.org/download/nginx-1.

linux學習第一周;標準輸入、輸出錯誤定向與管道

例子 OS clas 管道 text 默認 post 錯誤 gpo 標準輸入 標準輸出 標準錯誤 重定向: < #標準輸入重定向,默認為鍵盤輸入,利用<可以將文件代替鍵盤輸入 > #標準輸出重定向(會覆蓋1.text裏面的內容);例子:ls > /d

Linux編程 22 shell編程(輸出輸入定向,管道,數學運算命令,退出腳本狀態碼)

tab test $? per width 可能 註意 ble 保存 1. 輸出重定向   最基本的重定向是將命令的輸出發送到一個文件中。在bash shell中用大於號(>) ,格式如下:command > inputfile。例如:將date命令的輸出內容,

Spring MVC(三)控制器獲取頁面請求引數以及將控制器資料傳遞給頁面實現定向的方式

首先做好環境配置 在mvc.xml裡進行配置   1.開啟元件掃描   2.開啟基於mvc的標註   3.配置試圖處理器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www

使用dupdup2定向還原

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Nginx安裝,預設虛擬主機,Nginx使用者認證域名定向

11月26日任務 12.6 Nginx安裝 12.7 預設虛擬主機 12.8 Nginx使用者認證 12.9 Nginx域名重定向   12.6 、Nginx安裝 cd /usr/local/src &nbs

【JMeter】HTTP請求:自動定向跟隨定向

【Jmeter】HTTP請求:自動重定向和跟隨重定向 自動重定向 跟隨重定向 在JMeter中的設定 自動重定向 HttpClient接收到請求後,如果請求中包含重定向請求,HttpClient是可以自動跳轉的,但是隻針對Get與H

請求轉發請求定向的區別

本質區別:請求轉發只是發了一次請求,請求重定向發了兩次請求。 1.請求轉發:位址列還是當初請求的位址列; 請求重定向:位址列不會是初次的位址列,位址列最後一次相應的位址列。 2.請求轉發:在最終的servlet中,request物件和中轉的request物件是同一個物件; 請求重定向:在最終

Linux程式設計 22 shell程式設計(輸出輸入定向,管道,數學運算命令,退出指令碼狀態碼)

1. 輸出重定向 最基本的重定向是將命令的輸出傳送到一個檔案中。在bash shell中用大於號(>) ,格式如下:command > inputfile。例如:將date命令的輸出內容,儲存到指定的輸出檔案中。      如果檔案已存在,重定向操作符會用新的檔案資料覆蓋已有檔案。這種情況下可以用

Iframe應用ServletResponse定向,session過期過濾器跳轉登入頁面

最近專案用到了ServletResponse的重定向,也就是servlet過濾器,session過期自動跳轉登入頁面,以前見過其他寫法,感覺麻煩,不就是重定向嗎,一句程式碼搞定,寫那麼多幹嘛。最近真正用到這個技術寫法,不得不去考究下。 1.session過期一般寫法 res

同時呼叫getOutputStream()getWriter()出現的問題以及請求轉發請求定向的區別

package response; import java.io.IOException; import javax.servlet.ServletException; import javax.s

網站定向 301302定向的php實現

內容來源自我的部落格:http://www.jcsoo.com/wordpress/?p=15 前幾天搭建好了wordpress的部落格,但是我發現了一個問題,就是我的部落格在wordpress的資料夾(www.jcsoo.com/wordpress)才可以訪問,我想

網頁常用的301定向302定向的實現方法

 重定向說白了就是通過各種的方法將各種網路請求重新定個方向轉到其它位置。   如:網頁中的重定向   域名的重定向   路由選擇的變化也是對資料報文經由路徑的一種重定向   在我們的網站建設中,時常會遇到需要網頁重定向的情況:象網站調整,如改變網頁目錄結構,網頁被移到一個新

嵌入式檔案系統輸出定向

概述 嵌入式檔案系統 Linux檔案描述符 Shell資料重定向 嵌入式檔案系統 FAT 12/16/32 NFS網路檔案系統 FFS用於Flash儲存器 以檔案形式管理I/O裝置 Linux檔案描述符 一切皆檔案,Linu

java中輸入輸出定向

在java小程式中,從鍵盤上輸入大量的數值很麻煩,這時候,就可以用到java中的輸入、輸出重定向。 可以將資料用空格隔開,如儲存為一個名為input.txt的文字檔案中。 例如,作一個連加的運算。新建一個input.txt文字檔案輸入1 3 4 2 5 0;