【发布时间】:2018-04-19 07:44:19
【问题描述】:
我有这些映射:
@GetMapping("rparam")
public void get(@RequestParam("test") String test) {
System.out.println(test);
}
@PostMapping("rparam")
public void post(@RequestParam("test") String test) {
System.out.println(test);
}
@PatchMapping("rparam")
public void patch(@RequestParam("test") String test) {
System.out.println(test);
}
@DeleteMapping("rparam")
public void delete(@RequestParam("test") String test) {
System.out.println(test);
}
@PutMapping("rparam")
public void put(@RequestParam("test") String test) {
System.out.println(test);
}
除了 GetMapping 和 PostMapping 方法之外,所有其他方法都因找不到测试参数而失败,并出现 400 Bad request。
编辑: 请求是如何提出的(第一个工作):
(对数据进行字符串化并添加 contentType:application/json 也无济于事)
$.ajax({
url: "api/my-controller/rparam",
method: "POST",
data: {
test: "super test"
},
headers: {
"X-XSRF-TOKEN": cookie
}
}).done(function() {
console.log("super cool")
});
$.ajax({
url: "api/my-controller/rparam",
method: "PUT",
data: {
test: "super test"
},
headers: {
"X-XSRF-TOKEN": cookie
}
}).done(function() {
console.log("super cool")
});
编辑:我刚刚注意到,当我没有对数据进行字符串化并设置 contentType 时,它会作为表单数据发送。而通过表单发送数据只支持 post 和 get 所以可能与它有关?
【问题讨论】:
-
您如何访问它们?您是否像这样访问它们:localhost:
/rparam?test=test ? -
方法是相同的,所以问题可能不在于该代码:) 您如何访问它们或您的 servlet 是如何制作的
-
您需要在实际访问这些端点的地方添加一些代码
-
我添加了请求的生成方式
-
是否可以使用
@RequestBody代替@RequestParam进行PATCH、PUT 和DELETE 请求?
标签: java spring model-view-controller