gpt4 book ai didi

java - Spring boot 中 jQuery AJAX 请求出现 404

转载 作者:行者123 更新时间:2023-12-01 06:22:06 25 4
gpt4 key购买 nike

我最近创建了一个 Spring boot 项目,并尝试使用 jQuery AJAX 从 Spring 中的 Controller 获取数据。由于某种原因它返回 404。

我的 Controller

import java.util.ArrayList;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {

@RequestMapping(value="/", method=RequestMethod.GET)
public String loadHome() {
return "index";
}

@RequestMapping(value="/getMajors", method=RequestMethod.GET)
public ArrayList<String> getMajors(){
ArrayList<String> majors = new ArrayList<>();
majors.add("Computers");
majors.add("Physics");
return majors;
}

}

第一个方法是加载主页index.html,第二个方法是映射到AJAX请求的方法。

我的 jQuery AJAX 请求

$.ajax({
type:"get",
url:"/getMajors",
success:function(data){
console.log(data);
},
error:function(data){
console.log(data);
}
});

请告诉我为什么我会收到 404 错误。 TIA。

编辑:此应用程序是在 Springboot 中创建的。带有网络、开发工具包的标准配置 - 来自 spring 初始化程序。

最佳答案

我猜你错过了两件事。一个是上下文名称,通常是部署到服务器的项目或 war 文件的名称,除非您在 web.xml 中提供另一个上下文。来自 web.xml 文件的示例 Servlet 映射:

<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

因此,当您的 ajax 调用命中 /getMajors 时,它通常指向“localhost:port/getMajors”,而不是“localhost:port/sampleproj/getMajors” ”。您缺少那里的上下文。

所以你的方法需要如下所示:

@RequestMapping(value = "/getMajors", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ArrayList<String> getMajors(){
ArrayList<String> majors = new ArrayList<>();
majors.add("Computers");
majors.add("Physics");
return majors;
}

调试这些问题的一个好方法是查看开发者控制台(Chrome)以获取请求响应信息。

祝你编码愉快!

编辑 1:从方法中删除 @ResponseBody,因为该类使用 @RestController 进行注释。但如果该类用 @Controller 进行注释,我的声明是正确的。

关于java - Spring boot 中 jQuery AJAX 请求出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49848766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com