Java 弹簧靴支撑服务|请求方法#x27;获取';不支持
我用spring boot做了一个hello world rest服务。 我能够通过独立的java程序调用该服务。我也可以通过Chrome的附加组件来调用它 但当我试图使用jQueryAjax通过一个独立的HTML页面点击它时,我得到了一个错误 警告3748---[nio-9000-exec-2]o.s.web.servlet.PageNotFound:不支持请求方法“GET” 感谢您的帮助 PS:我假设我能够使用其他方法调用Web服务 模式,使控制器处于良好状态。但我现在的样子有些不对劲 从HTML调用它 下面的HTML页面:Java 弹簧靴支撑服务|请求方法#x27;获取';不支持,java,jquery,html,rest,spring-boot,Java,Jquery,Html,Rest,Spring Boot,我用spring boot做了一个hello world rest服务。 我能够通过独立的java程序调用该服务。我也可以通过Chrome的附加组件来调用它 但当我试图使用jQueryAjax通过一个独立的HTML页面点击它时,我得到了一个错误 警告3748---[nio-9000-exec-2]o.s.web.servlet.PageNotFound:不支持请求方法“GET” 感谢您的帮助 PS:我假设我能够使用其他方法调用Web服务 模式,使控制器处于良好状态。但我现在的样子有些不对劲 从H
客户
$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
变量输入={
“名称”:$(“#名称”).val(),
“语言”:$(“#语言”).val()
};
var inputStr=JSON.stringify(输入);
警报(inputStr);
$.ajax({
url:“http://localhost:9000/rest/greetMeObj/",
方法:“张贴”,
数据:inputStr,
数据类型:“jsonp”,
成功:函数(输出){//用于进一步操作的回调方法
var str=JSON.stringify(输出);
$(“#输出”)。文本(数据);
},
错误:函数(数据){//如果发生错误
$(“#错误”)。文本(数据);
}
});
});
});
姓名:
语言:
英语
法语
荷兰的
提交
我想解决方案如下所述:
RequestMapping中的两个值必须相同。因此,对于每个值,必须定义一个GET值和一个POST值
@RequestMapping(value="/rest/greetMe", method= RequestMethod.GET)
public @ResponseBody Greeting sayHello(
@RequestParam(value = "name", required = false, defaultValue = "Stranger") String name,
@RequestParam(value = "language", required = false, defaultValue = "en") String language) {
return new Greeting(counter.incrementAndGet(), String.format(getTemplate(language), name));
}
@RequestMapping(value="/rest/greetMe", method= RequestMethod.POST)
public @ResponseBody Greeting sayHello(
@RequestBody(required = true) Input input) {
return new Greeting(counter.incrementAndGet(),
String.format(getTemplate(input.getLanguage()), input.getName()));
}
如果已将这些调用映射到默认映射,请检查控制器:
@DeleteMapping()
@PostMapping()
@GetMapping()
它被映射到path=“/”
。请换成
@DeleteMapping(path="/something")
@PostMapping(path="/something")
@GetMapping(path="/something")
这只是一个警告,所以你可以忽略它?或者这个警告会导致另一个错误吗?显然,您不能用jsonp发布跨域请求