Исходя из моего клиентского кода, я делаю AJAX-вызов своему сервлету. Если я использую GET в качестве метода запроса. Все работает, и я получаю ответ. Но когда я отправляю запрос как POST, сервлет не может отправить ответ. Из журнала я обнаружил, что в сервлете «запрос» объект равен нулю, когда совершается ajax-вызов с POST. Согласно этому посту:
Ответ сервлета на запрос AJAX пуст , я устанавливаю заголовки для политики того же происхождения.
Ниже приведен мой код для справки:
function aimslc_ajaxCall(url,callback, postParams){
var xmlhttp = null
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
eval( callback+"("+xmlhttp.responseText+")" );
}
}
if(postParams!=null && typeof postParams!="undefined" ){
xmlhttp.open("POST",url,true);
xmlhttp.send(postParams);
}else{
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
}
Код сервлета:
public void doProcess (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
logger.info("doProcess::start..."+request.getQueryString());
response.setHeader("P3P","CP='NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM'");
response.setHeader("Access-Control-Allow-Origin","*");
response.setHeader("Access-Control-Allow-Credentials","true");
response.setHeader("Access-Control-Allow-Methods","POST, GET");
}
Выдает пустое исключение в request.getQueryString ()