从Javascript调用Wicket - ajax请求未完成

问题描述 投票:1回答:1

我已经从Wicket创建了一个javascript方法,它将重新加载一个面板:

Behavior behave = new AbstractDefaultAjaxBehavior() {
        @Override
        protected void respond(AjaxRequestTarget target) {
            target.appendJavaScript(JavascriptUtils.functionCallback(INIT_JQUERY_UPLOAD_JS));
            target.add(photosetsContainer);
        }

        /**
         * Creates a javascript method: reloadImagesPanel(duplicateImagesList) and renders it in head section of
         * html. This method is called after the user selects images using uploader.
         */
        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            super.renderHead(component, response);
            CharSequence callback = getCallbackScript();
            String reloadImagesJs = JavascriptUtils.function(RELOAD_IMAGES_PANEL_JS, callback.toString());
            response.render(JavaScriptHeaderItem.forScript(reloadImagesJs, null));
        }

    };
    add(behave);

我正在使用jquery.fileupload上传一些图片:

$('.fileupload').fileupload({
  dataType: 'json',
  done: function (e, data) {
    reloadImagesPanel();
  },
  fail: function (e, data) {
    alert("There was a problem while uploading, please try again!");
  },
  progress: function (e, data) {
    $(e.target).closest('.multipleUploadButtonContainer').find('.imagesUploadSpinner').spin(SPINNER_MIN_OPTS);
  }
});

RELOAD_IMAGES_PANEL_JS = reloadImagesPanel

因此,当我上传图像时,它们被移动到相应的文件夹,调用reloadImagesPanel(),但是Console Network选项卡中没有GET请求,它告诉我服务器端的响应方法已完成当然,该小组已重新加载。

这是我期待看到的:

enter image description here

日志文件中没有错误,控制台中没有错误,它适用于localhost,它不适用于生产环境。

这怎么可能?为什么在客户端调用RELOAD_IMAGES_PANEL_JS wicket方法,但响应(AjaxRequestTarget目标)方法永远不会被丰富?

javascript ajax wicket jquery-file-upload wicket-7
1个回答
1
投票

最后我们发现了问题:我们有一个外部工具,可用于在我们的应用程序中插入javascript代码,并且该代码存在明显破坏了wicket功能的问题。

我们通过在浏览器的控制台中调试jquery和wicket js代码找到了问题,我们将一个工作案例场景与一个工作案例场景进行了比较。

© www.soinside.com 2019 - 2024. All rights reserved.