我正在尝试使用Spring MVC构建单页Web应用程序,依赖于本机Spring MVC控制器(带有模型和视图)和返回JSON信息的常见休息控制器。
我想用一个简单的例子简要解释一下我在做什么:
唯一的问题是,如果用户在浏览器中写入Ajax方法用于获取主页内容的GET HTTP请求的URL,那么现在发生的是他将在浏览器中加载主页内容(和当然我不希望他能够手动发送这个获取http请求)。
我真的希望用这个例子解释自己,我想问你是否有任何建议让我朝这个方向解决这个问题!我知道使用像React或Angular这样的框架,事情会容易得多,但我还是要学习一个!这将是我将来为此webapp做的第一次升级。
非常感谢你的帮助!
答案 0 :(得分:1)
你必须使用@RestController而不是@Controller(或者你可以为类使用@Controller,为单一方法使用@ResponseBody)。因此你的返回方法应该是ResponseEntity。根据您的代码流程,您可以设置HttpStatus.OK或HttpStatus.INTERNAL_SERVER_ERROR。
答案 1 :(得分:1)
尝试验证从JavaScript到API的所有HTTP调用(例如使用JSON Web Token之类的令牌)。如果令牌不存在或不正确,则返回401 HTTP状态(未授权)。
有很多这样的好教程:http://www.baeldung.com/spring-security-oauth-jwt
您只需使用身份验证返回的令牌为您的ajax调用添加Http Header。