Использование Wicket AbstractAjaxBehavior с jQuery.ajax ()

Я использовал вызов jQuery AJax для отправки JSON, как описано здесь в StackOverflow

Проблема в том, что я не получаю никаких данных о сервер. Я вижу, что вызов действительно достиг целевого поведения ajax, но в методе onRequest () RequestCycle dd не содержит никаких параметров

My Wicket Code:

        AbstractAjaxBehavior ajaxSaveBehaviour = new AbstractAjaxBehavior(){
        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        public void onRequest()
        {
            //get parameters
            final RequestCycle requestCycle = RequestCycle.get();



            final PageParameters pageParameters = new PageParameters(requestCycle.getRequest().getParameterMap());
            logger.info(" I have received something 1");

            for(String pkey: requestCycle.getRequest().getParameterMap().keySet()){
                String[] valArry= requestCycle.getRequest().getParameterMap().get(pkey);
                StringBuffer sb = new StringBuffer();
                for(String s: valArry) sb.append(s).append(" , ");
                logger.info("pk :"+ pkey + " = "+ sb.toString());
            }

            //do something using nice json library to produce a string of json

            logger.info(" I have received something 2");
            for(String key: pageParameters.keySet()){
                Object o= pageParameters.get(key);
                logger.info("received key : "+ key + "   = " +o.toString());                    
            }





            String data="ok";        

            requestCycle.setRequestTarget(new StringRequestTarget("application/json", "utf-8", data));
        }


    };
    add(ajaxSaveBehaviour);
    String callBackURL= ajaxSaveBehaviour.getCallbackUrl().toString();

My Javascript, который вызывает этот метод

console.log(" call back url :"+ callBackURL);
           $.ajax({
                url: callBackURL,
                type: 'post',
                cache: false,

                data:JSON.stringify(ccbArry[0]),
                contentType: 'application/json',
                dataType: 'json',
                complete: function() {
                        alert(" completed okey dokey!")
                }

            });

From my Firebug консоль, Я вижу, что JSON POST был успешно выполнен, и сработало предупреждение («завершено, хорошо, докей!»).

Проблема в том, что AbstractAjaxBehavior в Wicket не может найти какие-либо параметры в RequestCycle.

Что-то мне не хватает? Самое смешное, что я запустил это отладчик, так как не смог найти ни одного параметра. Это похоже на проблему с кодировкой.

Из Firebug я мог видеть, что это был вызов

http://localhost:8080/mywebapp-web-1.0-SNAPSHOT/?wicket:interface=:0::IActivePageBehaviorListener:0:&wicket:ignoreIfNotActive=true&%7B%22type%22%3A9504%2C%22sourceNewsClipBean%22%3A%7B%22type%22%3A9503%2C%22id%22%3A%224cf05752acc1d6aebface86d%22%2C%22typeString%22%3A%22NEWSCLIP_TYPE%22%7D%2C%22startOffset%22%3A%22195%22%2C%22clipDuration%22%3A%22297%22%7D=

Почему-то эти параметры не добавляются в RequestCycle. Похоже, проблема с кодонгом. Есть идеи?

7
задан Community 23 May 2017 в 10:32
поделиться