在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Linux  數(shù)據(jù)庫(kù)/ 后臺(tái)只能接收get請(qǐng)求,使用post傳值接收的數(shù)據(jù)為null,這是咋地了?

后臺(tái)只能接收get請(qǐng)求,使用post傳值接收的數(shù)據(jù)為null,這是咋地了?

問(wèn)題描述

后臺(tái)只能接收get請(qǐng)求,使用post傳值接收的數(shù)據(jù)為null

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

打斷點(diǎn)看了一下post請(qǐng)求傳過(guò)來(lái)的值為null
使用postman測(cè)試的,本以為是測(cè)試軟件的問(wèn)題,之后自己寫了一個(gè)form表單測(cè)試,結(jié)果相同,
使用post傳值不能接收到數(shù)據(jù)

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

@RequestMapping(value = "login.do", method = RequestMethod.GET)
@ResponseBody
public ServerResponse<User> login(String username,String password, HttpSession session){
    ServerResponse<User> response = iUserService.login(username,password);
    if(response.isSuccess()){
        session.setAttribute(Const.CURRENT_USER,response.getData());
    }

    return response;
}

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

username 和 password 應(yīng)該可以接收到前端傳過(guò)來(lái)的值
但是實(shí)際上并沒有接收到,值為null

回答
編輯回答
尤禮

@RequestMapping(value = "login.do", method = RequestMethod.GET) 你這邊寫要求的是get請(qǐng)求啊

2017年10月9日 11:40
編輯回答
別硬撐

雖然不清楚為什么但是重置了tomcat問(wèn)題就解決了

2018年2月23日 05:43
編輯回答
吢丕

請(qǐng)求頭的問(wèn)題可以讓前端把content-type改成json,或者后端用jackson來(lái)處理,不要用Spring自帶的RequestMappingHandler,接下來(lái)前后端互相甩鍋時(shí)間到

2017年7月14日 06:28
編輯回答
任她鬧

請(qǐng)求頭問(wèn)題,用postman的時(shí)候經(jīng)常這樣 就是因?yàn)檎?qǐng)求頭的問(wèn)題

2017年8月26日 06:57
編輯回答
心沉

這個(gè)其實(shí)是前端的問(wèn)題。
猜測(cè)你前端傳的數(shù)據(jù)是json格式的。
json格式的數(shù)據(jù),后臺(tái)這樣是接收不到的。用@ResquestBody(不是@ResponseBody)可以接收,但不能正常接收多個(gè)字段,如果想接收,應(yīng)該需要自己定義個(gè)類什么的。

正確的做法應(yīng)該是更改前臺(tái)的請(qǐng)求數(shù)據(jù)格式。

let params = new FormData();
params.append('username', 'test');
params.append('password', 'test');
let config = {
    headers: {'content-type': 'application/x-www-form-urlencoded'}
};  //添加請(qǐng)求頭

axios.post('login.do', params, config).then((response) => {
    console.log(response.data);
})
2017年3月21日 13:52