IBM JAX-RS 1.1处理Dojo Ajax OPTIONS请求

时间:2012-11-29 22:46:18

标签: ajax rest dojo jax-rs apache-wink

我目前正在通过WAS 7和Web 2.0 Feature Pack 1.1.0.0试验IBM JAX-RS功能。我遇到的问题是客户端Dojo ajax调用构成CORS情况,我基本上试图弄清楚如何正确处理OPTIONS请求。

我按照引用的url中的示例(尽管它适用于WAS 8,它不应该影响我正在玩的部分);但据报道,系统找不到任何支持OPTIONS的方法。

任何帮助将不胜感激!

参考网址:http://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&product=was-base-iseries&topic=twbs_jaxrs_wadl_serving

1 个答案:

答案 0 :(得分:0)

虽然不到一天,但由于我没有看到任何回应,我想发布我到目前为止拼凑的临时解决方案。

首先,请查看以下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。希望这会有所帮助。