不支持方法“GET”

Method 'GET' is not supported

提问人:MatildaEliz 提问时间:7/31/2023 最后编辑:Brian Tompsett - 汤莱恩MatildaEliz 更新时间:7/31/2023 访问量:67

问:

当我提出请求时,我的屏幕上收到了这条消息。我该如何解决这个问题?我不使用任何注释或请求。HTTP POSTGET

HTPP 请求 : http://localhost:9000/user/register?username=a&password=1

控制台错误

无法加载资源:服务器响应状态为 405(不允许方法)

JavaScript的

<script>
document.getElementById("signupbtn").addEventListener("click",function(){
    const username = document.getElementById("username").value;
    const password = document.getElementById("password").value;
    const xhr = new XMLHttpRequest(); 
    xhr.open("POST","http://localhost:9000/user/register?username="+username+"&password="+password);
    xhr.send();
  })

</script>

控制器

@PostMapping("/register")
ResponseEntity<String> addUser(@RequestParam("username") String username,@RequestParam("password") String password) {
    userService.addUser(username, password);
    return ResponseEntity.ok("User added succesfully");
}

服务

public void addUser(String username,String password){
    userRepository.save(new User(username,password));
       
}
JavaScript Java HTTP 异常

评论

0赞 Jorn 7/31/2023
错误消息与您的代码不匹配。它说您正在使用 GET,而代码显示 POST。 使用浏览器控制台找出实际发生的情况。
0赞 MatildaEliz 7/31/2023
不,我没有使用任何 get。我尝试使用 POST。我只是尝试从客户端获取用户名和密码并添加到数据库中,但错误测量是关于 GET 的,但我没有使用任何 GET
0赞 Jorn 7/31/2023
除非在某处完成某些 GET 请求,否则您不会收到该错误。同样,使用浏览器控制台找出答案。
0赞 nick zoum 7/31/2023
您是否检查过浏览器的网络选项卡,以查看实际发送的请求是 GET 还是 POST?此处显示的代码应发送一个 POST 请求,该请求不解释错误消息。
0赞 MatildaEliz 7/31/2023
控制台只有错误无法加载资源:服务器响应状态为 405(不允许方法)

答:

0赞 Parth KaPatel 7/31/2023 #1

这是REQBIN的解决方案

请参考链接并执行代码并应用到您的项目中

let xhr = new XMLHttpRequest();

xhr.open("POST", "https://reqbin.com/echo/post/json");

let data = {
  "Id": 78912,
  "Customer": "Jason Sweet",
};

xhr.onload = () => console.log(xhr.status);

xhr.send(data);
1赞 MatildaEliz 7/31/2023 #2

问题是当我发送请求时。这是一个 GET 请求,而不是 POST 。我更改了PostMapping到GetMapping的问题得到了解决。我认为对 POST 和 GET 映射存在误解

0赞 aliboura 7/31/2023 #3

你的代码没有问题,它应该可以工作,除非你在应用程序安全配置中确实有限制,比如 (allowedMethods)

评论

0赞 Community 8/4/2023
您的答案可以通过其他支持信息进行改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。