代码之家  ›  专栏  ›  技术社区  ›  CoqPwner

如何设置XMLHttpRequest的响应

  •  0
  • CoqPwner  · 技术社区  · 7 年前

    因此,我使用此函数将文档发送到一个servlet,该servlet将其存储在我的DB中,并且一切正常:

    function submitAttachment(formName, formId, fieldName) {
          var formData = new FormData();
          var fileName = "";
          var files = document.getElementById(fieldName + "Document").files;
    
          formData.append('formName', formName);
          formData.append('formId', formId);
          formData.append('fieldName', fieldName);
    
          for (var i = 0; i < files.length; i++) {
              var file = files[i];
              formData.append('file', file, file.name);
              fileName = file.name;
          }
    
          var xhr = new XMLHttpRequest();
          xhr.open('POST', 'saveattachment', true);
    
          xhr.onload = function() {
              if (xhr.status === 200) { // Success
                var idDoc = xhr.responseText;
                setLinkHtml(fieldName, fileName, idDoc);
                $("#" + fieldName + "IdDocument").val(idDoc);
              }
          };
    
          xhr.send(formData);
    }
    

    只是,我得到的响应(来自xhr.responseText)是\u0017。

    我的servlet大致如下所示:

    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
            response.setContentType("text/html; charset=UTF-8");
           response.setCharacterEncoding("UTF-8");
           request.setCharacterEncoding("UTF-8");
           PrintWriter out = response.getWriter();
    
            //DoStuff
    
            out.write(doc.getIdDocument());
        }
    
    
        //Process the HTTP Post request
        public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
            doGet(request,response);
        }
    

    我只想返回一个数字,我做错了什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   CoqPwner    7 年前

    终于找到了! 如果有人想知道,返回一个数字就相当于某种返回代码。所以我只需要添加+“” 所以 out.write(doc.getIdDocument() + "") 成功了!