更新時(shí)間:2021-12-01 09:30:08 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1993次
如何進(jìn)行AJAX跳轉(zhuǎn)和跳轉(zhuǎn)到新窗口?
一般我們?cè)谶@個(gè)頁(yè)面跳轉(zhuǎn),直接window.location.href = yourjumpurl;
但是如果你想跳轉(zhuǎn)到新頁(yè)面,你需要這樣做:
①:var newWin = window.open('_blank');
②:$.ajax( .. . . ... .,
success:function (data) {
/ * Suppose data.url is the address to be jumped * /
newWin.location.href = data.url;
/ * Hereby Note that the new window is outside Ajax instead of the Success callback inside * /
}
);
1.ajax只接受最后返回的值,不會(huì)響應(yīng)跳轉(zhuǎn)請(qǐng)求更改瀏覽器地址欄地址轉(zhuǎn)向的,你需要用js判斷ajax的返回值是否要跳轉(zhuǎn),然后設(shè)置location.href實(shí)現(xiàn)跳轉(zhuǎn)。
2.ajax異步請(qǐng)求struts的action只會(huì)返回所請(qǐng)求頁(yè)面的html源代碼,這樣請(qǐng)求是不會(huì)跳轉(zhuǎn)的,這種用法只是在替換頁(yè)面局部html時(shí)使用。
3.在springMVC框架中,當(dāng)controller層方法返回String類(lèi)型的時(shí)候默認(rèn)是進(jìn)行頁(yè)面跳轉(zhuǎn),這時(shí)候后臺(tái)使用return時(shí)ajax接收到的并不是后臺(tái)返回的某個(gè)字符串或狀態(tài)碼,而是整個(gè)html對(duì)象,這時(shí)可以在后臺(tái)的方法上添加注解 @ResponseBody。
4.無(wú)法從ajax函數(shù)外部獲取ajax請(qǐng)求到的數(shù)據(jù),在需要使用數(shù)據(jù)的組件之前,先在ajax回調(diào)函數(shù)中使用localstorage.setItem()將數(shù)據(jù)儲(chǔ)存在本地,在組件中使用localstorage.getItem()調(diào)用。
在此過(guò)程中嘗試在componentWillMount 中用 setState 來(lái)傳遞數(shù)據(jù),但是報(bào)錯(cuò),錯(cuò)誤的大致內(nèi)容是 setSate 必須在component 的 mounting和mounted狀態(tài)下才能使用。
通過(guò)上述相信大家對(duì)AJAX跳轉(zhuǎn)和跳轉(zhuǎn)到新窗口的方法已經(jīng)有所了解,大家若想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線(xiàn)學(xué)習(xí),里面的課程由淺到深,適合小白學(xué)習(xí),希望對(duì)大家能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743