如何从浏览器中使用 @PathVariable 调用 Post 方法? 搜索了所有问题,这个问题没有直接答案。不喜欢使用其他注释。
@RestController
@RequestMapping("/api")
public class PlugController {
@PostMapping(value = "/command/{cmd}")
public String command(@PathVariable(value = "cmd") String command) {
return command;
}
}
从浏览器调用如下:
http://localhost:8080/api/command/on
错误:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
There was an unexpected error (type=Method Not Allowed, status=405).
您可以发布您的
***Application
代码或任何日志吗?我使用您的代码并且它有效。
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
@RequestMapping("/api")
public class TestController {
@PostMapping(value = "/command/{cmd}")
public String command(@PathVariable(value = "cmd") String command) {
return command;
}
}
---更新---
如果您想通过浏览器请求,请使用
@GetMapping
代替 PostMapping
。
如果你想通过浏览器请求POST,你需要使用javascript创建一个表单提交事件,url如下:
javascript 是让浏览器知道这是一个 javascript 的要求。
javascript:(function(){document.body.innerHTML='<form method="POST" action="http://localhost:8080/api/command/aaa"></form>';document.forms[0].submit()})();
注意,javascript: 和 (function()....
之间没有空格尝试在邮递员中测试此发布请求。由于一些限制,我们的浏览器不支持发布请求。