我不能。 4天我一直在努力使用与GET不同的方法发送数据ajax,我无法建议。我在Spring Boot中创建了一个项目。我创建了一个映射的地址控制器
@PutMapping(value = "/changeEmail")
public boolean changeEmail(
@RequestBody ChangeEmailDTO changeEmailDTO
) {
System.out.println("email: " + changeEmailDTO.getEmail());
return true;
}
该控制器应该接受ajaxa发送的电子邮件地址
function changeEmail() {
console.log("Event");
$.ajax({
type: 'PUT',
url: '/changeEmail',
data: {
email: $('#email').val()
},
success: function (result) {
console.log('function');
}
});
}
然而,唯一的影响是在控制台崩溃了我
PUT http://localhost:8080/signIn net::ERR_TOO_MANY_REDIRECTS
send @ jquery-3.2.1.min.js:4
ajax @ jquery-3.2.1.min.js:4
changeEmail @ settings.js:58
submitHandler @ settings.js:52
d @ jquery.validate.min.js:4
(anonymous) @ jquery.validate.min.js:4
dispatch @ jquery-3.2.1.min.js:3
q.handle @ jquery-3.2.1.min.js:3
DTO只有一个字段
public class ChangeEmailDTO {
@IsValidEmail
@ExistsEmail(ifExistsReturn = false)
@Getter @Setter private String email;
}
尝试通过ajax发送数据后,它将我发送到错误控制器
@Controller
public class PageNotFoundController implements ErrorController{
@RequestMapping("/error")
public ModelAndView showPageError() {
return new ModelAndView("redirect:/signIn");
}
@Override
public String getErrorPath() {
return "/error";
}
}
使用浏览器工具屏幕要发送和接收的内容:https://zapodaj.net/f1b8ed0b2a16b.png.html 正如我所提到的,控制器只能从ajax正确地获取GET查询。每次它在错误控制器上翻转。 此外,他们说,如果我想直接从表单发送数据,那么任何查询都没有问题。 这个阿贾克斯转移了什么,我不知道。