我无法在servlet页面中获取POST值?

我无法在servlet页面中获取POST值。 我之前的问题与这个问题有关。 如何从servlet页面中的ajax请求获取数据?

我的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); } }); 

提前致谢。

您不应该将其作为JSON字符串发送,而是作为JS对象发送。 更改

 data: JSON.stringify(dataRequestObject), 

通过

 data: dataRequestObject, 

并通过JS对象中存在的键以通常的方式访问servlet中的值

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

请注意,您的servlet需要在同一个域中运行,否则您将点击同源策略 。 如果它实际上在同一个域上运行,那么我不会在JS代码中对域进行硬编码,因为它会使您的代码完全不可移植。 所以更换

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

通过

 url: '/SampleServlet1/serv' 

要么

 url: 'serv' 

同样。

你能尝试这个解决方案:

http://developer.yahoo.com/javascript/howto-proxy.html