第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Spring-Boot Controller無(wú)法識(shí)別來(lái)自Ajax的數(shù)據(jù)

Spring-Boot Controller無(wú)法識(shí)別來(lái)自Ajax的數(shù)據(jù)

動(dòng)漫人物 2021-04-04 16:19:22
我正在嘗試將Ajax中的json(電子郵件和密碼)發(fā)送到Spring-Boot中的Controller方法。我確定我是從html提取數(shù)據(jù)并以正確的方式在json中進(jìn)行解析,但控制器仍然表示缺少電子郵件期望字段。我也使用了form.serialized()但沒(méi)有任何變化,所以我決定創(chuàng)建自己的對(duì)象,然后將其解析為json。單擊提交按鈕時(shí),Ajax調(diào)用開(kāi)始:function login() {var x = {    email : $("#email").val(),    password : $("#password").val()  };$.ajax({    type : "POST",    url : "/checkLoginAdministrator",    data : JSON.stringify(x),    contentType: "application/json",    dataType: "json",    success : function(response) {        if (response != "OK")            alert(response);        else            console.log(response);    },    error : function(e) {        alert('Error: ' + e);      }});這是控制器內(nèi)部的方法:@RequestMapping("/checkLoginAdministrator")public ResponseEntity<String> checkLogin(@RequestParam(value = "email") String email,                                         @RequestParam(value = "password") String password) {    String passwordHashed = Crypt.sha256(password);    Administrator administrator = iblmAdministrator.checkLoginAdministrator(email, passwordHashed);    if (administrator != null) {        Company administratorCompany = iblmCompany.getAdministratorCompany(administrator.getCompany_id());        String administratorCompanyJson = new Gson().toJson(administratorCompany);        return new ResponseEntity<String>(administratorCompanyJson, HttpStatus.OK);    }    return new ResponseEntity<String>("{}", HttpStatus.OK);}我可以通過(guò)json看到的jsonconsole.log()如下:{"email":"fantasticemail@email.it","password":"1234"}在IJ控制臺(tái)中,我得到以下Java WARN:Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'email' is not present]
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

問(wèn)題是您正在使用@RequestParam從URL獲取參數(shù)的參數(shù),應(yīng)該@RequestBody用于POST請(qǐng)求


我建議創(chuàng)建一個(gè)DTO對(duì)象,您可以使用它來(lái)讀取POST請(qǐng)求的主體,如下所示:


public ResponseEntity<String> checkLogin(@RequestBody UserDTO userDTO){

隨著DTO是這樣的:


public class UserDTO {

  private String email;

  private String password;


  //getter & setters

}


查看完整回答
反對(duì) 回復(fù) 2021-04-22
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以按照以下方法進(jìn)行操作:


使用contentType:“ application / json; charset = utf-8”,


創(chuàng)建一個(gè)域?qū)ο?,該域?qū)ο笫请娮余]件和密碼的包裝,并使用@RequestBody讀取json


public class Login{

 private String email;

 private String password;

 //Getters and Setters

}




@RequestMapping("/checkLoginAdministrator")

public ResponseEntity<String> checkLogin((@RequestBody Login login) {

 //logic

}


查看完整回答
反對(duì) 回復(fù) 2021-04-22
  • 2 回答
  • 0 關(guān)注
  • 225 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)