2011-05-20 24 views
0

我無法在servlet頁面中獲取POST值。我以前的問題與這個問題有關。 How to get the data from ajax request in servlet page?我無法獲得servlet頁面中的POST值?

我需要我的servlet頁面中的dataRequestObject值。

var dataRequestObject= {}; 
       dataRequestObject= {mark:Mark,subject:English,language:C language,author:john}; 

var dataRequestHeader= {}; 
       dataRequestHeader= {Username:uname,Password:pword,Domain:domain,WindowsUser:windowsuser}; 


    $.ajax({ 
      type:'POST', 
      url:'http://localhost:8090/SampleServlet1/serv', //calling servlet  
      cache:false, 
      headers:dataRequestHeader, 
      data:JSON.stringify(dataRequestObject), 
      success:function(){ alert("Request Done");}, 
      error:function(xhr,ajaxOptions){ 
       alert(xhr.status + " :: " + xhr.statusText); 
       } 
      }); 

在此先感謝。

回答

3

你不應該把它作爲JSON字符串,但正如JS對象。更改

data: JSON.stringify(dataRequestObject), 

通過

data: dataRequestObject, 

和存在於JS對象

String mark = request.getParameter("mark"); 
String subject = request.getParameter("subject"); 
String language = request.getParameter("language"); 
String author = request.getParameter("author"); 
// ... 

注意你的servlet需要的鍵訪問該Servlet的值通常的方式在相同的域中運行,否則,請點擊Same Origin Policy。如果它實際上運行在同一個域中,那麼我不會在JS代碼中對域進行硬編碼,因爲它使您的代碼完全不可移植。因此,通過

url: '/SampleServlet1/serv' 

url: 'serv' 

更換

url: 'http://localhost:8090/SampleServlet1/serv' 

爲好。