【问题标题】:I couldn't get the POST value in servlet page?我无法在 servlet 页面中获取 POST 值?
【发布时间】:2011-08-29 10:30:09
【问题描述】:

我无法在 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);
                } 
            });

提前致谢。

【问题讨论】:

    标签: javascript jquery servlets


    【解决方案1】:

    您不应该将其作为 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'
    

    也是。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-02-20
        • 2016-07-14
        • 2014-01-12
        • 2017-08-17
        • 1970-01-01
        • 2013-04-02
        • 1970-01-01
        • 2016-02-24
        • 1970-01-01
        相关资源
        最近更新 更多