0

当用户单击时,我通过 ajax 将数据发布到检票口服务器。创建状态,在页面加载时通过 ajax GET 检索数据,如果只有一个请求正在发送,那么它的工作正常,但是在第二个请求中抛出了以下错误。org.apache.wicket.core.request.mapper.StalePageException 如何通过 ajax 将数据发送到服务器,然后在用户加载面板时加载提交的数据。

代码:Java Script 向服务器发送数据

function submitdata() {
    $.ajax({
        url : $('#mark').attr('json:callback.url1'),
        type : 'post',
        cache : false,
           data : ko.toJSON(familyModel),
           ntentType : 'application/json',
        dataType : 'json',
        complete : function() {
            } ,
        error: function(xhr, status, error){
                    console.log(xhr);
                    alert(status);
                    alert(error);
                 } 

            });}

        }

Page Load
    $(document).ready(function() {
                $.ajax({
                url : $('#mark').attr('json:callback.url'),
                    type : 'GET',
                    cache : false,
                    contentType : 'application/json',
                    success: function (data) {
                    console.log(data);
                              var parsed = JSON.parse(data);
                         // ko.mapping.fromJS(data, familyModel);
                /  ko.applyBindings(familyModel); 

                             // familyModel=new FamilyModel();
                              ko.applyBindings(familyModel); 

                    },
                    error: function(xhr, status, error){
                        console.log(xhr);
                        alert(status);
                        alert(error);
                     }
                }); 
                }

public class AbstractJSONBehavior extends AbstractAjaxBehavior {
public void onRequest() {


        RequestCycle requestCycle = RequestCycle.get();

        readRequestData(requestCycle);
        sendResponse(requestCycle);

    }
4

1 回答 1

0

您使用的是普通的 jQuery API,而 Wicket 认为请求是非 Ajax 的,因此它会增加Page#renderCount计数器以防止使用带有陈旧信息的页面。如果你使用Wicket.Ajax.post({...})Wicket 会自动解决这个问题。因此,您可以使用Wicket.Ajax.post()或传递来自https://github.com/apache/wicket/blob/master/wicket-request/src/main/java/org/apache/wicket/request/http/的请求参数或标头WebRequest.java#L40-L48true对 jQuery#ajax()具有价值。

于 2015-02-13T13:47:25.187 回答