【问题标题】:Spring Boot GetMapping 404Spring Boot 获取映射 404
【发布时间】:2021-08-10 19:47:43
【问题描述】:

我正在学习 Java Spring Boot。但是我的 get 请求总是返回 404,但是我的 post 请求可以成功。我很混乱。 这是我的 Java 代码:

@Controller
public class LexicalAnalysisController {


    @CrossOrigin 
    @GetMapping(value = "api/LexicalAnalysis/test")
    public String test(){
        return "111";
    }


}

这是我的 JavaScript 代码:

scan(){
        this.$axios
          .get('/LexicalAnalysis/test')
          .then((response) => {
            console.log(reponse.data);
          })
          
          .catch(failResponse =>{

          })
        
      }

这是我的错误信息:

那怎么了?非常感谢!

【问题讨论】:

  • 您能否在 chrome 选项卡中打开 http://localhost:8080/api/LexicalAnalysis/test 看看会发生什么。其他替代者是邮递员。只是想检查服务是否按预期工作。
  • 我无法打开它,它显示“Whitelabel 错误页面 - 此应用程序没有 /error 的显式映射,因此您将此视为后备。出现意外错误(type=Not Found , 状态=404)"
  • 尝试使用“/api/LexicalAnalysis/test”而不是“api/LexicalAnalysis/test”

标签: javascript java spring spring-boot


【解决方案1】:

将@Controller 更改为@RestController 这样就可以了

【讨论】:

  • 在您提交此内容时,其他三个答案已经提出了此建议。请不要提交重复的答案。
【解决方案2】:

您应该将@Controller 替换为@RestController

这个link 可能有帮助。

【讨论】:

  • 我认为在他的 chrome 截图中,同样被调用了。
  • @jaybhatt 但他注释控制器而不是 RestController
  • 是的,第二部分是正确的,这一点毫无疑问。但我认为端点已经是正确的。
  • @jaybhatt 在他的 axios 代码中我看到了,但我不明白你为什么不赞成我
  • 完全相反的人,我赞成你当前的答案。
【解决方案3】:

要么将@controller 更改为@RestController,要么在@controller 下方添加@ResponseBody。 ResponseBody 注解将方法返回值绑定到 Web 响应正文,因此它是必需的。

【讨论】:

    【解决方案4】:

    我将@Controller 更改为@RestController 并成功了,但我仍然不知道为什么。

    猜你喜欢
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2019-11-25
    • 2017-12-24
    • 2019-02-03
    • 2019-07-08
    相关资源
    最近更新 更多