Javascript Ajax向Wicket服务器发送两个请求时出错
当用户单击时,我通过ajax将数据发布到wicket服务器。要创建状态,请在页面加载时通过ajax GET检索数据,如果只有一个请求正在发送,则其工作正常,但在第二个请求中引发了以下错误。 org.apache.wicket.core.request.mapper.StalePageException 如何通过ajax将数据发送到服务器,然后加载面板 在用户加载时使用提交的数据 代码:Java脚本 正在向服务器发送数据Javascript Ajax向Wicket服务器发送两个请求时出错,javascript,jquery,ajax,wicket-6,Javascript,Jquery,Ajax,Wicket 6,当用户单击时,我通过ajax将数据发布到wicket服务器。要创建状态,请在页面加载时通过ajax GET检索数据,如果只有一个请求正在发送,则其工作正常,但在第二个请求中引发了以下错误。 org.apache.wicket.core.request.mapper.StalePageException 如何通过ajax将数据发送到服务器,然后加载面板 在用户加载时使用提交的数据 代码:Java脚本 正在向服务器发送数据 function submitdata() { $.ajax({
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);
}
您使用的是普通的jQuery API,Wicket认为请求不是Ajax,因此它会增加
Page#renderCount
计数器,以防止使用带有过时信息的页面。
如果您使用Wicket.Ajax.post({…})
,那么Wicket将自动解决这个问题。
因此,您可以使用
Wicket.Ajax.post()
,也可以使用true
将请求参数或头从传递到jQuery#Ajax()。谢谢martin,请为我的代码提供一个简单的示例。特别是“从传递请求参数或头”修改jQuery#Ajax,标题为:{'Wicket Ajax':true,'Wicket Ajax BaseURL':$('#mark').attr('json:callback.url')},但仍然存在异常