【问题标题】:Servlet: Not able to get the response back to ajax function(in success block)Servlet:无法将响应返回给 ajax 函数(在成功块中)
【发布时间】:2013-05-24 11:38:53
【问题描述】:

从jsp我需要通过ajax调用上传文件,实习生向servlet发出请求,上传过程完成后我需要控制回ajax函数,以便我可以向用户显示所有导入的数据。

// 这是我的代码

    <form id="form1" method="post" enctype="multipart/form-data" action="TestUpload"
     onsubmit="validate();" >
    Name : <input type="text" name="name" id="name"/><br>
    File : <input type="file" name="file" id="file"></input><br>
    <input type="submit" value="Submit" ></input>  
    </form>



// ajax function :

 var validate = function() {

    var form = $('#form1');
    strContent = $.getMultipartData('#'+this.id);
    var programId = $('#name').val();
    if (programId == "") {
        return false;
    }
    $.ajax( {
        type: form.attr('method'),
        url: form.attr('action'),
        enctype:form.attr('enctype'),
        contentType: 'multipart/form-data; boundary='+strContent[0],
        data: form.serialize,
        success : function(data) {
            alert(data);
            $('#status').val(data);
        }
    });
   };

和 Servlet 代码使用 mutlipartRequest 处理表单数据。

public void processRequest(HttpServletRequest request,HttpServletResponse response) throws       
    ServletException,IOException{
    System.out.println("Got Request");
    File file = null;
    response.setContentType("text/plain");
    response.setHeader("Access-Control-Allow-Origin", "*");
    PrintWriter out = response.getWriter();
    String filePath = "c:\\test";
    MultipartRequest processFile  = new MultipartRequest(request, filePath);
    file = processFile.getFile("file");
    String fileName = file.getName();
    System.out.println("Valule of text field Name is :\t" +      
    processFile.getParameter("name"));
    System.out.println("FileName is :\t" + fileName);
    out.println("success");
    out.close();
}

//一旦过程完成,我想回复 ajax 调用我无法找到合适的解决方案。

【问题讨论】:

  • 您是否看到 servlet 中的日志/系统输出显示成功?另外,尝试 out.write 而不是 out.println,然后执行一次刷新 - out.flush,不要关闭它。
  • 我在 servlet 中获取系统输出以获取成功/失败,并且我尝试使用 out.write 而不是 out.println 仍然无法获得响应。

标签: jquery ajax servlets


【解决方案1】:

回传的 json 或 xml(Internet data) 无法显示在 alert 中,请尝试将其放在 console.log 中。即使这样,如果它不起作用,那么将返回的对象转换为数组然后使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2017-01-04
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多