Java SpringRESTAPI,将一个基元类型传递给控制器
现在,当我调试它时,它确实会向这个控制器发送请求,但是由于某种原因,Java SpringRESTAPI,将一个基元类型传递给控制器,java,ajax,rest,spring-boot,Java,Ajax,Rest,Spring Boot,现在,当我调试它时,它确实会向这个控制器发送请求,但是由于某种原因,字符串名总是空的,你能告诉我我在ajax请求中需要调整什么吗,它可能在数据字段中。你正在使用带有请求参数的GET请求(@RequestParam annotation)。 @RequestParam表示请求中的param通过url传递,如下所示 $.ajax({ method: 'GET', url: "http://localhost:8080/todItems", contentType: 'appl
字符串名总是空的,你能告诉我我在ajax请求中需要调整什么吗,它可能在数据
字段中。你正在使用带有请求参数的GET请求(@RequestParam annotation)。
@RequestParam表示请求中的param通过url传递,如下所示
$.ajax({
method: 'GET',
url: "http://localhost:8080/todItems",
contentType: 'application/json',
crossDomain: true,
data: 'Work',
success: (resp) => {
console.log(resp)
},
error: (resp) => {
console.log(resp);
}
})
所以,您只需要将数据移动到url参数。
若您希望通过请求正文发送数据,请不要使用GET方法,而是使用POST方法。许多web服务器不支持GET请求中的请求体您的数据
部分应该类似于数据:{name:'Work'}
@barbakani,嘿,如果我尝试此操作,我会发现没有'Access-Control-Allow-Origin'头存在
,因此我认为它会寻找其他方法重载,还有其他建议吗?除了@barbakini注释外,您还需要使用@Controller
或@restcontroller
来获取json数据。我使用的是。。。我只是没有复制粘贴整个类。我开始相信这就是spring boog的问题所在,如果(required=false)不存在,我就无法访问这个方法。所以从理论上讲,如果我想获取所有分类id==2的项目,我应该使用post?@Alexander通常人们更喜欢使用get
for REST服务,它只返回一些东西。在您的情况下,使用查询参数应该可以正常工作(因此使用/todItems?category=2
)POST
通常用于创建新项目,其中请求主体包含项目应该是什么的表示。Ye men当我使用@PathVariable String name
和@GetMapping(“/{name}”)
时,它起了作用,但我只是在询问theory@Alexander,通常,人们为请求的资源创建层次结构。例如:http://localhost:8080/todItems/1/subitems/5
这意味着我们从项目中请求第5个子项目。如果我们需要进行一些过滤或其他操作,我们会在请求参数中添加这些信息。通常,如果我们需要复杂的请求参数结构,这意味着我们创建了错误的资源层次结构。
$.ajax({
method: 'GET',
url: "http://localhost:8080/todItems",
contentType: 'application/json',
crossDomain: true,
data: 'Work',
success: (resp) => {
console.log(resp)
},
error: (resp) => {
console.log(resp);
}
})
http://localhost:8080/todItems?name=Work