1

我面临一个奇怪的问题。我在这个页面的http://account.dev.pippo.com/account/UserPage上的 UserPage我有一个 DropDown 组件来过滤列表视图(使用 Ajax)。从下拉列表中选择一个值时,XMLHttpRequest 是针对http://dev.pippo.com而不是http://account.dev.pippo.com/account完成的。这会导致 Access-Control-Allow-Origin 问题:

XMLHttpRequest cannot load https://dev.pippo.com/wicket/page?3-1.IBehaviorListener.0-c…ontentList-layout-contentRight-overview-dateRange-listViewDateRangeOptions. Origin https://account.dev.pippo.com is not allowed by Access-Control-Allow-Origin. 

我有一个预先设置帐户的 Apache 重写规则。使用 /account 时的 URL。

/account URL 使用以下方式挂载:

mountPackage("/account", UserPage.class);

(我将本页使用的所有面板和自定义组件移动到同一个包中)

wicket 是否应该使用当前 URL ( http://account.dev.pippo.com ) 作为 Ajax 请求的目标(以避免浏览器阻止请求)?

为什么会这样?这是一个检票口错误吗?

我正在使用 Apache Wicket 6.9.1。

非常感谢。

编辑:在标记文件中,我有以下 AJAX 请求

Wicket.Ajax.ajax({"u":"../wicket/page?3-1.IBehaviorListener.0-content-contentList-layout-contentRight-overview-dateRange-listViewDateRangeOptions","e":"change","c":"listViewDateRangeOptions13","ad":true,"m":"POST"});;
4

1 回答 1

0

根据通过 wicket 邮件列表收到的提示,目前存在一个解决此问题的错误:https ://issues.apache.org/jira/browse/WICKET-5043

Martin Grigorov 建议的解决方法如下:

添加:

mountPage("/account/UserPage", UserPage.class);

并检查生成的标记。我希望看到类似的东西:

Wicket.Ajax.ajax({"u":"./?3-1.IBehaviorListener.0-content-contentList-layout-contentRight-overview-dateRange-listViewDateRangeOptions","e":"change","c":"listViewDateRangeOptions13","ad":true,"m":"POST"});;

也就是说,网址前面不应有“wicket/page”。

于 2013-09-26T12:36:12.470 回答