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

时间:2011-05-20 06:57:50

标签: javascript jquery servlets

我无法在servlet页面中获取POST值。我之前的问题与此问题有关。How to get the data from ajax request in servlet page?

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

提前致谢。

2 个答案:

答案 0 :(得分:3)

您不应将其作为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需要在同一个域中运行,否则您会点击Same Origin Policy。如果它实际上在同一个域上运行,那么我不会在JS代码中对域进行硬编码,因为它会使您的代码完全不可移植。所以替换

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

通过

url: '/SampleServlet1/serv'

url: 'serv'

答案 1 :(得分:0)

你能试试这个解决方案吗?

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