我面临一个奇怪的问题。我在这个页面的http://account.dev.pippo.com/account/UserPage上的UserPage上有一个DropDown组件来过滤listview(使用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);
(我将此页面使用的所有面板和自定义组件移到同一个包中)
不应该使用当前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"});;
答案 0 :(得分: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”。