我只想做一个用户注册。以下是我的jsp表单(使用引导):
<form id="form" onsubmit="return false;">
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" id="username">
</div>
<div class="form-group">
<label for="avatar">Avatar:</label>
<input type="file" class="form-control-file" id="avatar" name="avatar">
</div>
<button type="submit" class="btn btn-primary" id="submit">Register Now</button>
</form>下面是我的Ajax:
var _url = "<%= request.getContextPath()%>/user";
$("#submit").click(function(e) {
e.preventDefault();
var formData = new FormData();
formData.append("useranme", $("#username").val())
formData.append("avatar", $("#avatar")[0].files[0])
$.ajax({
url: _url,
type: 'POST',
dataType: 'json',
data: formData,
cache: false,
processData: false,
contentType: false,
success: function(data) {
console.log(data);
}
})
}) 我的springMVC控制器:
@RequestMapping("/user")
@RestController
public class UserController {
@PostMapping
public Response register(@RequestBody User user, @RequestParam("avatar") MultipartFile avatar) throws IllegalStateException, IOException {
String fileName = avatar.getOriginalFilename();
System.out.println(fileName); // if i get the fileName, then means success...
// besiness logic...
Response res = new Response();
return res;
}
}正如我说的,当我现在按下按钮寄存器时,我得到了415(不支持的媒体类型)。请帮帮忙。
发布于 2020-05-11 17:44:50
我发现这是@RequestBody的问题所在,我删除了它,然后它就起作用了。(另一个问题是我不能使用@RequestParam的"avatar“,我必须更改其他的.我不知道为什么)
https://stackoverflow.com/questions/61724945
复制相似问题