關(guān)于SpringBoot在有Ajax時(shí)候不跳轉(zhuǎn)的問題解決
問題描述
最近在嘗試使用SpringBoot做一個(gè)后臺(tái)管理系統(tǒng),由于目前還沒有學(xué)會(huì)VUE,所以前端頁面采用的 thymeleaf+ajax的模式。前兩天在開發(fā)登錄頁的時(shí)候遇到了一個(gè)問題,登錄之后按照正常流程應(yīng)該是要在控制器里跳轉(zhuǎn)到首頁的,但是我的登錄頁死活不跳轉(zhuǎn)。 控制器的邏輯也是沒有問題的
@Controller
class LoginController {
@Resource
lateinit var adminService: AdminService
@RequestMapping("/login",method = [RequestMethod.POST])
fun login(@RequestParam name:String,@RequestParam password:String):String?{
val admin=adminService.login(name,password)
return if (admin==null){
""
}else{
//一般情況下是可以直接渲染到main.html的,但是添加了Ajax之后跳轉(zhuǎn)就會(huì)失效
"main"
}
}
}Ajax里邊的邏輯
$.ajax({
method: 'POST',
url: 'http://localhost:8080/login',
data: {
name: $('[name="username"]').val(),
password: $('[name="password"]').val()
},
success:function (r) {
console.log(r)
},
error:function (result) {
alert(result)
}
})控制臺(tái)返回的信息

解決方法
這里先給出解決方法,至于原因會(huì)在最后說明。解決方法就是在控制器中新增一個(gè)mainPage方法,對(duì)應(yīng)到main.html。
@RequestMapping("/main")
fun mainPage():String{
return "main"
}然后再在Ajax的success回調(diào)中調(diào)用這個(gè)控制器,完成跳轉(zhuǎn)。
success:function (r) {
window.location.href="http://localhost:8080/main" rel="external nofollow"
},原因梳理
一開始以為是控制器寫的有問題,然后就各種修改控制器的配置,最后發(fā)現(xiàn)無論怎么修改都沒有效果,并且發(fā)現(xiàn)如果在瀏覽器中直接調(diào)用main.html的控制器路徑也是沒有問題的,這種情況就想到了會(huì)不會(huì)是Ajax那的問題。為了驗(yàn)證是不是Ajax的問題,在Ajax回調(diào)成功的代碼那里打了個(gè)斷點(diǎn),想看一下后臺(tái)返回來的數(shù)據(jù)到底是個(gè)啥

看到?jīng)],控制器把整個(gè)main.html的頁面都返回到Ajax里了,也就是說,在使用Ajax的時(shí)候,SpringBoot的控制器并沒有進(jìn)行頁面渲染,而是把目標(biāo)頁面結(jié)構(gòu)返回了,能跳轉(zhuǎn)才怪了。
總結(jié)
到此這篇關(guān)于SpringBoot在有Ajax時(shí)候不跳轉(zhuǎn)問題解決的文章就介紹到這了,更多相關(guān)SpringBoot有Ajax不跳轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于ConditionalOnMissingBean失效問題的追蹤
這篇文章主要介紹了關(guān)于ConditionalOnMissingBean失效問題的追蹤方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
微信支付之公眾號(hào)支付(java實(shí)現(xiàn))
這篇文章主要介紹了微信支付之公眾號(hào)支付(java實(shí)現(xiàn)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Spring Boot應(yīng)用程序同時(shí)支持HTTP和HTTPS協(xié)議的實(shí)現(xiàn)方法
如今,企業(yè)級(jí)應(yīng)用程序的常見場景是同時(shí)支持HTTP和HTTPS兩種協(xié)議,這篇文章考慮如何讓Spring Boot應(yīng)用程序同時(shí)支持HTTP和HTTPS兩種協(xié)議,需要的朋友可以參考下2019-10-10
Java貪心算法之Prime算法原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Java貪心算法之Prime算法原理與實(shí)現(xiàn)方法,簡單描述了Prime算法的概念、原理、實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2017-09-09
解讀@ConfigurationProperties的基本用法
這篇文章主要介紹了@ConfigurationProperties的基本用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
Java實(shí)現(xiàn)企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤提成問題
這篇文章主要介紹了請利用數(shù)軸來分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長整型,需要的朋友可以參考下2017-02-02
JVM參數(shù)NativeMemoryTracking的使用
本文主要介紹了JVM參數(shù)NativeMemoryTracking的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
Java8并發(fā)新特性CompletableFuture
這篇文章主要介紹了Java8并發(fā)新特性CompletableFuture,CompletableFuture針對(duì)Future接口做了改進(jìn),相比Callable/Runnable接口它支持多任務(wù)進(jìn)行鏈?zhǔn)秸{(diào)用、組合、多任務(wù)并發(fā)處理,下面文章更多相關(guān)內(nèi)容得介紹,需要的小伙伴可以參考一下2022-06-06

