【问题标题】:IBM JAX-RS 1.1 handling Dojo Ajax OPTIONS requestIBM JAX-RS 1.1 处理 Dojo Ajax OPTIONS 请求
【发布时间】:2012-11-29 22:46:18
【问题描述】:
【问题讨论】:
标签:
ajax
rest
dojo
jax-rs
apache-wink
【解决方案1】:
虽然不到一天,但由于我没有看到任何回复,所以我想发布我目前拼凑的临时解决方案。
首先,请查看以下来自 Mozilla 的链接,以更好地了解 CORS 和 OPTIONS 请求(它对我有用)。
链接:https://developer.mozilla.org/en-US/docs/HTTP_access_control
接下来,关于 IBM JAX-RS 处理 OPTIONS 问题的更新。看来 OPTIONS 请求的处理方式与其他 GET/POST 没有什么不同,它需要与 @Path 值完全匹配。这并不是真正需要的,就我而言,我在@Path 值中尝试了通配符,但这并没有起到触发系统处理 OPTIONS 的作用。
现在,解决方案。毫不奇怪,我最终使用过滤器将 OPTIONS 请求转发到资源中的方法,该方法使用 @OPTIONS 注释并固定 @Path 值,例如@Path("选项")。
在过滤器中,我正在处理 Allow-Origin 和 Allow-Header,然后我将资源的 @OPTION 方法留给处理 Allow-Methods。
这是非常简单和基本的解决方案。除了在过滤器内部进行适当的检查外,不需要为每个请求添加过多的标头。
这里有个问题,它适用于 Chrome(版本 23.0.1271.95 m)和 Mozilla(9.0.1),但不适用于 IE。我仍在试图弄清楚 IE 是如何响应这些 CORS 的。希望这会有所帮助。