GWT:当servlet向浏览器发送响应文件时,响应不会返回到SubmitCompleteEvent的表单

GWT:当servlet向浏览器发送响应文件时,响应不会返回到SubmitCompleteEvent的表单,gwt,download,httpresponse,Gwt,Download,Httpresponse,客户端代码: @UiHandler("form") void onFormSubmission(SubmitCompleteEvent event) { hideProcessingPopUp(); if (event.getResults().contains("Exception")) { // handle exception } } doPost方法中的Servlet代码: response.setContentType("text/csv");

客户端代码:

@UiHandler("form")
void onFormSubmission(SubmitCompleteEvent event) {
    hideProcessingPopUp();
    if (event.getResults().contains("Exception")) {
        // handle exception
    }
}
doPost方法中的Servlet代码:

response.setContentType("text/csv");
    response.setHeader("Content-Disposition", "attachment;filename="
            + exportType + ".csv");

    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
            response.getOutputStream(), "UTF-8"));

    // Adding content
    List<CustomObject> list = (List<CustomObject>) anonymousList;
    for (CustomObject eachObject : list) {
        writer.append(eachObject.getContent());
        writer.newLine();
    }

    writer.flush();

    // Gently close streams/writers.
    close(writer);

    return fileContent;
response.setContentType(“text/csv”);
setHeader(“内容处置”、“附件;文件名=”
+exportType+“.csv”);
BufferedWriter writer=新的BufferedWriter(新的OutputStreamWriter(
getOutputStream(),“UTF-8”);
//添加内容
列表=(列表)匿名列表;
用于(自定义对象每个对象:列表){
append(eachObject.getContent());
writer.newLine();
}
writer.flush();
//轻轻关闭流/写入程序。
关闭(作者);
返回文件内容;

Servlet代码很好,因为我得到了预期的数据和文件。问题在于响应没有到达客户端,即SubmitCompleteEvent。请帮助我,提前谢谢。

浏览器就是这样工作的;事实上,它警告你:

后端服务器应以“text/html”的内容类型响应,这意味着返回的文本将被视为html。如果服务器指定了任何其他内容类型,则在onFormSubmit事件中发送的结果HTML在浏览器之间将是不可预测的,并且
onSubmitComplete
事件可能根本不会触发