關於SpringBoot項目部署上線,出現只能訪問到登錄界面,跳轉不成功的問題,的跨域問題

只能訪問到登錄界面,跳轉不成功的問題

這個問題困擾了我一個多星期,始終無法解決,確定後端代碼已經完全正確的情況下,檢查了前端代碼,最終發現問題在前端。
找到前端的 login.html 代碼如下:

// An highlighted block
doLogin() {

					if (this.username == null || this.username == undefined || this.username == '') {
						alert("用戶名不能爲空");
						return;
					} else if (this.password == null || this.password == undefined || this.password == '') {
						alert("密碼不能爲空");
						return;
					} else if (this.password.length < 6) {
						alert("密碼不能少於6位");
						return;
					}

					var userBO = {
						username: this.username,
						password: this.password
					};
					// console.log(userBO);

					var serverUrl = app.serverUrl;

					var returnUrl = this.returnUrl;
					// form提交
					axios.defaults.withCredentials = false;
					// console.log(axios.defaults);
					axios.post(serverUrl + '/passport/login', userBO)
						.then(res => {
							if (res.data.status == 200) {
								var user = res.data;
								console.log(user);

								window.location.href = app.ctx + "/index.html";
								if (returnUrl != null && returnUrl != undefined && returnUrl != '') {
									window.location.href = returnUrl;
								} else {
									window.location.href = "index.html";
								}

							} else if (res.data.status == 500) {
								alert(res.data.msg);
								return;
							}
						});
				}
			}

登錄接口沒有問題,存在問題的是跨域訪問需要發送cookie時一定要加axios.defaults.withCredentials = true;
修改如下:

// An highlighted block
axios.defaults.withCredentials = true;

如此困擾好久的問題就解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章