Apache Wicket > Framework Documentation > Reference library > How to do things in Wicket > AJAX > How to handle jQuery.ajax(..) JSON request ? |
Apache Wicket
How to handle jQuery.ajax(..) JSON request ?
#editReport()
The following is the jQuery JSON request code
This section of code invokes a abstract behavior ona page with a json request:
console.log(" call back url :"+ callBackURL);
$.ajax({
url: callBackURL,
type: 'post',
cache: false,
data:JSON.stringify(ccbArry),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(json) {
console.log(" reponse :"+ json);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log("error :"+XMLHttpRequest.responseText);
}
});
This section of code is an abstract ajax behavior which accepts a json document in request and responds with another json document that is then available to the javascript method on the page.
AbstractAjaxBehavior ajaxSaveBehaviour = new AbstractAjaxBehavior(){
private static final long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
public void onRequest()
{
//get parameters
final RequestCycle requestCycle = RequestCycle.get();
WebRequest wr=(WebRequest)requestCycle.getRequest();
HttpServletRequest hsr= wr.getHttpServletRequest() ;
try {
BufferedReader br = hsr.getReader();
String jsonString = br.readLine();
if((jsonString==null) || jsonString.isEmpty()){
logger.error(" no json found");
}
else {
logger.info(" json is :"+ jsonString);
}
} catch (IOException ex) {
logger.error(ex);
}
// json string to retir to the jQuery onSuccess function
String data=getReturnJSONValue();
logger.info("returning json :"+ data);
IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", data);
getRequestCycle().setRequestTarget(t);
//requestCycle.setRequestTarget(new StringRequestTarget("application/json", "utf-8", data));
}
};
add(ajaxSaveBehaviour);
String callBackURL= ajaxSaveBehaviour.getCallbackUrl().toString();
logger.info(" callback url :"+ callBackURL);