Servlet:无法将响应返回到ajax函数(在成功块中)

时间:2013-05-24 11:38:54

标签: jquery ajax servlets

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

//这是我的

代码
    <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);
        }
    });
   };

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

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调用,我找不到合适的解决方案。

1 个答案:

答案 0 :(得分:0)

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