在 Spring Data Rest 中启用跨源请求

2024-04-09

我正在使用 Angular 2 和 Spring Boot 开发一个 Web 应用程序。我用spring-boot-data-rest将我的存储库公开为 HTTP 端点的依赖项。

在开发过程中,我在端口 8080 上运行的本地 tomcat 上运行后端 spring boot 项目。为了开发前端,我使用 angular-cli 在端口 4200 上为我的 Angular 2 应用程序提供服务。在 4200 上运行的前端需要能够访问 8080 上公开的端点,但这不起作用,因为:

请求的资源上不存在“Access-Control-Allow-Origin”标头。起源 'http://本地主机:4200 http://localhost:4200' 因此不允许访问。

如果这些是我手动输入的自定义端点@RestController,我可以简单地添加@CrossOrigin注释如下:

@RestController
public class MyController {
    @CrossOrigin(origins = "http://localhost:4200")
    @RequestMapping(value = "/whatever")
    public void whatever() {
        //whatever
    }
}

但我显然不能为我暴露的端点做到这一点spring-boot-data-rest。那么,我怎样才能使这些端点可以从http://localhost:4200 origin?


我使用了自定义 CORS 过滤器来使其工作:

/**
 * Filter for enabling CORS support.
 */
@Component
public class CorsFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response,
                                    final FilterChain filterChain) throws ServletException, IOException {
        response.addHeader("Access-Control-Allow-Origin", "*");
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS");
        response.addHeader("Access-Control-Allow-Headers", "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
        response.addHeader("Access-Control-Expose-Headers", "Access-Control-Allow-Origin, Access-Control-Allow-Credentials");
        response.addHeader("Access-Control-Allow-Credentials", "true");
        response.addIntHeader("Access-Control-Max-Age", 10);
        filterChain.doFilter(request, response);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spring Data Rest 中启用跨源请求 的相关文章

  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • 身份验证在 Spring Boot 1.5.2 和 Oauth2 中不起作用

    我正在使用带有 spring boot 1 5 2 RELEASE 的 Oauth2 当我尝试重写 ResourceServerConfigurerAdapter 类的配置方法时 它给了我一个编译错误 但这在 Spring boot 1 2
  • 是否可以使用 Flying Saucer (XHTML-Renderer) 将 css 解析为类路径资源?

    我正在尝试将资源打包到 jar 中 但我无法让 Flying Saucer 在类路径上找到 css 我无法轻松构建 URL 来无缝解决此问题 https stackoverflow com questions 861500 url to l
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • Spring 规范 - 谓词的联合

    我需要一个函数来过滤参数并构建查询 我有 4 个参数 因此如果我尝试为每个条件实现查询 我将不得不编写 16 2 4 实施 这不是一个好主意 我尝试通过界面改进我的代码Specification来自 Spring Data JPA 但我无法
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 生成的序列以 1 开头,而不是注释中设置的 1000

    我想请求一些有关 Hibernate 创建的数据库序列的帮助 我有这个注释 下面的代码 在我的实体类中 以便为合作伙伴表提供单独的序列 我希望序列以 1000 开头 因为我在部署期间使用 import sql 将测试数据插入数据库 并且我希
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • 了解joda时间PeriodFormatter

    我以为我明白了 但显然我不明白 你能帮我通过这些单元测试吗 Test public void second assertEquals 00 00 01 OurDateTimeFormatter format 1000 Test public
  • Freemarker 和 Struts 2,有时它计算为序列+扩展哈希

    首先我要说的是 使用 Struts2 Freemarker 真是太棒了 然而有些事情让我发疯 因为我不明白为什么会发生这种情况 我在这里问是因为也许其他人有一个想法可以分享 我有一个动作 有一个属性 说 private String myT
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 使用 jQuery AJAX 显示正确的错误消息

    目前 如果我的 ajax 请求出现错误 例如提交表单 我使用的是 ASP NET MVC 3 它将显示类似 内部服务器错误 的内容 但如果我在不使用 Ajax 的情况下进行提交 那么 net 将显示实际的服务器错误 关于如何显示错误有什么想
  • 从用户空间,我如何判断Linux的软看门狗是否配置为无路可走?

    我正在为 Linux 编写一个系统监视器 并希望包含一些看门狗功能 在内核中 您可以将看门狗配置为即使 dev watchdog 关闭也能继续运行 换句话说 如果我的守护进程正常退出并关闭 dev watchdog 系统仍会在 59 秒后重
  • 如何使用 IoC 容器组织 MVP?

    我正在尝试使用 winforms 应用程序来理解 IoC 概念 假设我有一个演示者 其构造函数将其视图和服务作为构造函数参数 所以在表单代码中我有这样的东西 mnPresenter new Presenter this new AppSer
  • RestAssured 使用 foreach 循环解析 Json 数组响应

    我收到 RestAssured 的回复 它是一个 JsonArray 看起来类似于下面的代码 id 1 applicationId ABC id 2 applicationId CDE id 3 applicationId XYZ 我使用代
  • Python 无法安装模块 spaCy

    我是 python 新手 遇到了一个无法解决的问题 我想在 python 中安装和使用 spacy 包 因此我打开cmd并运行 pip install spacy 安装依赖项时 我收到一条错误消息 命令 c users xxx appdat
  • 如何将特定的变更集版本视为相对于最新版本的更改?

    我回滚了一个变更集 现在我需要检查使用 实际 待定更改回滚的变更集 就像一切都在提交更改之前一样 当我获得带有文件覆盖的特定版本时 我在挂起的更改窗口中看不到任何内容 我怎样才能得到我需要的状态 是否可以 执行 获取特定版本 后 您需要手动
  • postgres 中的 @> 运算符有什么作用?

    我在 postgres 中遇到了一个查询here http johanndutoit net searching in a radius using postgres 它使用 gt 地球物体上的操作员 我到处搜索过 但对这个运算符的含义一无
  • C++重载运算符<<和运算符>>

    class Book string title int category public Book const string abook int num string getTitle const int getCategory const
  • LinearLayout 和 RecyclerView 的截图

    我在它下面有一个 LinearLayout 和一个 RecyclerView 在Google上搜索 我找到了一些对RecyclerView进行截图的代码 说实话 我无法理解它是如何工作的 这是代码 public static Bitmap
  • C++ 定义类成员结构并在成员函数中返回它

    我的目标是这样的课程 class UserInformation public userInfo getInfo int userId private struct userInfo int repu quesCount ansCount
  • 在 R 中使用 ifelse

    我正在尝试在 R 中编写以下语句 if and ifelse 样本数据是试验数据 x y 和 z 是试验的列 需要编码的语句 if x gt 0 if y gt 0 l 2 else l 5 if z gt 0 m l 2 else m 5
  • 如何在管理控制台中打开所选对象的属性对话框?

    我正在寻找为特定 Windows 对象打开默认属性对话框的可能性 例如 services msc 中特定服务的属性对话 taskschd msc 中特定计划任务的属性对话 etc 我不想与该对话交互或更改任何属性 我只想打开它们 让用户直接
  • 当 tsconfig.json 位于项目中时,保存时的 Typescript 编译不起作用

    当我保存时 我无法使 Visual Studio 将打字稿编译为 js 我有一个xproj 带有net框架的asp net core 适用于 Visual studio 2015 更新 3 的 TypeScript 2 0 3 工具 我已尝
  • 根据标题将 WARC 文件拆分为块:WARC/1.0 Python

    我是编程新手 正在尝试通过将 WARC 文件拆分为块然后将每个块存储在字典中来处理它 每个块应该以 WARC 1 0 标头开始 并由 3 个空行分隔 我还想删除前两段 WARC 1 0 WARC Type warcinfo WARC Dat
  • 在 PowerShell 中使用 XAML/WPF,如何填充列表框?

    我在这里找到了很多很棒的线索 但似乎无法找到我的答案 我正在使用 Visual Studio 制作 GUI 并将 XAML 复制 粘贴到 PowerShell 中 我知道我应该在 C 中执行此操作 但由于我还不具备这些知识 因此对我来说它是
  • Angular 5 - 在 TypeScript 中翻译字符串

    我使用 i18n 进行翻译 并且对它在 html 方面的工作方式感到满意 但是 如果我在打字稿的字符串中定义了错误消息等 我想要一种方法来翻译这些内容 但找不到方法来做到这一点 有解决方法可以实现这一目标吗 到目前为止 通过库的 API 还
  • 更改 window.location 原型以禁用某些重定向?

    我正在尝试有选择地禁用window location 使用 Greasemonkey 位于文档开头 我不想完全禁用 javascript 只是禁用一些使用 javascript 完成的重定向 它们看起来像这样 window location
  • URL 中的 ^ 符号是什么意思?

    URL 中的 符号是什么意思 我需要从网页上抓取一些链接数据 我使用了一个简单的手写 PHP 爬虫 爬虫通常工作正常 然后我来到一个像这样的网址 http www example com example asp x7 3 select 20
  • 使用 Webpack 内联 CSS,而不使用 HtmlWebpackInlineSourcePlugin?

    我们一直在使用HtmlWebpackInlineSourcePlugin没有问题 但不再受支持 因此我们转向InlineChunkHtmlPlugin这对 JS 很有用 但拒绝捕获输出style css文件并将其内联 这样我们就没有样式了
  • 在 Spring Data Rest 中启用跨源请求

    我正在使用 Angular 2 和 Spring Boot 开发一个 Web 应用程序 我用spring boot data rest将我的存储库公开为 HTTP 端点的依赖项 在开发过程中 我在端口 8080 上运行的本地 tomcat