2013-03-12 2 views
0

Я пытаюсь POST объект JSON с сервлетом через AJAX. Однако объект имеет значение null в сервлете. Я не могу понять, что не так с этим кодом.Невозможно POST JSON объект от Javascript к сервлета через AJAX

JAVASCRIPT

function submitValues(event, val1, val2) 
{  
var xmlHttpObj = new XMLHttpRequest();     
      if(window.XMLHttpRequest) 
      { 
       xmlHttpObj = new XMLHttpRequest();      
      } 
      else if(window.ActiveXObject) 
      { 
       xmlHttpObj = new ActiveXObject("Microsoft.XMLHttp"); 

      } 


    var jsonObject = submitTheValues(event, val1, val2); 
     alert("json is:" +jsonObject); 
    var json = JSON.stringify(jsonObject); 
     alert("json after stringify:" +json); 

     xmlHttpObj.open("POST", "../myapp/myservlet", true); 
     xmlHttpObj.setRequestHeader("Content-type", "application/json");      
     xmlHttpObj.send(json); 

} 

сервлет

String jsonObj = request.getParameter("json"); 

ответ

1

Если вы хотите получить данные в качестве параметра вы должны отправить его в качестве application/x-www-form-urlencode.

xmlHttpObj.open("POST", "../myapp/myservlet", true); 
xmlHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencode");      
xmlHttpObj.send('json='+encodeURIComponent(json)); 
+0

Спасибо тонну. Я немного потрудился с этим. Это просто отлично. – Raghu