gpt4 book ai didi

java - 如何在 RESTEasy 中启用 JSONP?

转载 作者:搜寻专家 更新时间:2023-10-30 21:21:01 27 4
gpt4 key购买 nike

标题说的是我的问题。我需要将 DTO 包装到 javascript 方法回调中。目前我根据请求返回 JSON。但是在 Ajax 中使用这个有问题,因为我将 GET 发送到其他域。当然还有安全警察。

我想创建附加供应。您有任何示例、链接或建议如何做到这一点。

最佳答案

RESTEasy 中没有对 JSONP 的明确支持,但是在您的应用程序中启用 JSONP 的一种简单方法是编写一个 Servlet 过滤器。

这里有一些链接可以帮助您编写过滤器:

当我有这个要求时,我最终自己写了一个,因为我找到的例子似乎都没有完全符合它。以下是我编写自己的过滤器的建议:

  • 如果指定了回调参数(显然),则只包装响应

  • 仅当响应内容类型为 application/json 时才包装响应(或者如果您想支持更广泛的变体选择,仅当响应内容类型为 时才包装application/jsonapplication/*+json)

  • 使用 HttpServletResponseWrapper 以便您可以调用前向链 (chain.doFilter) 而无需将任何数据写入实际响应。一旦转发链完成,您就可以检查内容类型,确保您希望将响应包装为 JSONP,然后将捕获的数据连同 JSONP 前缀和后缀写入真实响应。

  • 当您决定将响应包装为 JSONP 时,请确保将响应内容类型更改为 text/javascript

如果您之前没有对 Java EE 过滤器做过很多工作,您可能需要先阅读 Java EE 教程的相关部分:Filtering Requests and Responses .

关于java - 如何在 RESTEasy 中启用 JSONP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5350924/

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