当前位置: 首页 > 知识库问答 >
问题:

Spring-Boot RestController在CORS

晏永康
2023-03-14

我正试图写一个CORSRest服务。我指的是一个REST服务,我可以从托管在web服务器上的网站调用该服务,该web服务器的端口与REST服务器不同。

package se.beta.note.rest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import se.selenwall.note.domain.Note;
import se.selenwall.note.domain.repository.NoteRepository;

import java.util.List;

@CrossOrigin(origins = "http://localhost:8001")
@RestController
public class NoteController {
    @Autowired
    private NoteRepository repository;

    @RequestMapping("/note")
    public List<Note> getNotes() {
        List<Note> notes = repository.findAll();
        System.out.println(notes);
        return notes;
    }

    @RequestMapping(value = "/note", method = RequestMethod.POST)
    public void saveNote(@RequestBody @Validated Note note) {
        repository.save(note);
    }
}

共有1个答案

苏选
2023-03-14

NoteController.class中删除@CrossOriginanotation

创建SimpleCorsFilter添加此代码

@Component
public class SimpleCORSFilter implements Filter {

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE, PATCH");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        response.setHeader("Access-Control-Expose-Headers", "Location");
        chain.doFilter(req, res);
    }

    public void init(FilterConfig filterConfig) {}

    public void destroy() {}

}
 类似资料:
  • 我发了这样的帖子: 我可以检索控制器中的数据,如下所示: 我确信这很简单,但我无法从我的StackOverflow和Google搜索中提炼出答案。 任何帮助都将不胜感激!:)

  • Spring Boot2.3引入了使用Spring Boot Maven/Gradle插件构建优化的Docker映像的支持。目标完成了一系列工作: 创建图层索引 调用Paketo构建包 构建OCI映像 等 是否有一种方法可以为使用旧的Spring Boot版本的模块复制这些步骤?更好的是,这些步骤可以直接集成到Maven/Gradle构建中吗?

  • 当我试图在数据库中保存角色时,会出现“springit.role表不存在”。 我没有在我的数据库中创建一个名为“role”的表,因为我正在学习的课程中的老师没有创建一个表。 在DatabaseLoader类方法中调用“AddUserSandRoles()”时显示的异常 那么,问题出在哪里呢? role.java user.java DatabaseLoader.java schema.sql 我是

  • 问题内容: 如何在Spring 5 Webflux项目中启用 CORS ? 我找不到任何适当的文档。 问题答案: 这是Webflux配置器的另一种解决方案。 旁注:它的Kotlin代码(从我的项目中复制),但是您可以轻松地将其转换为Java代码。

  • 问题内容: 我将Spring Boot与Spring Security和Cors支持一起使用。 如果我执行以下代码 结果我得到了 如果我使用错误的凭证进行测试,例如 我得到的不是401(这是Spring安全中错误身份验证的标准代码) 带有以下浏览器通知: 获取http:// localhost:5000 / api / token XMLHttpRequest无法加载http:// localho

  • 我使用带有Spring Security和Cors支持的Spring Boot。 带有以下浏览器通知: 获取http://localhost:5000/api/token XMLHttpRequest无法加载http://localhost:5000。请求的资源上没有“access-control-allow-origin”标头。因此,不允许访问源“http://localhost:3000”。响