Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringRESTAPI,将一个基元类型传递给控制器_Java_Ajax_Rest_Spring Boot - Fatal编程技术网

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