当前位置: 首页 > 面试题库 >

React.js,如何将多部分/表单数据发送到服务器

宰父焕
2023-03-14
问题内容

我们想将图像文件作为multipart / form发送到后端,我们尝试使用html表单获取文件并将文件作为formData发送,这是代码

export default class Task extends React.Component {

  uploadAction() {
    var data = new FormData();
    var imagedata = document.querySelector('input[type="file"]').files[0];
    data.append("data", imagedata);

    fetch("http://localhost:8910/taskCreationController/createStoryTask", {
      mode: 'no-cors',
      method: "POST",
      headers: {
        "Content-Type": "multipart/form-data"
        "Accept": "application/json",
        "type": "formData"
      },
      body: data
    }).then(function (res) {
      if (res.ok) {
        alert("Perfect! ");
      } else if (res.status == 401) {
        alert("Oops! ");
      }
    }, function (e) {
      alert("Error submitting form!");
    });
  }

  render() {
    return (
        <form encType="multipart/form-data" action="">
          <input type="file" name="fileName" defaultValue="fileName"></input>
          <input type="button" value="upload" onClick={this.uploadAction.bind(this)}></input>
        </form>
    )
  }
}

后端中的错误是
“嵌套异常为org.springframework.web.multipart.MultipartException:无法html" target="_blank">解析多部分servlet请求;嵌套异常为java.io.IOException:org.apache.tomcat.util.http.fileupload.FileUploadException:请求被拒绝,因为未找到多部分边界”。

阅读此内容后,我们尝试将边界设置为提取中的标头:

fetch("http://localhost:8910/taskCreationController/createStoryTask", {
      mode: 'no-cors',
      method: "POST",
      headers: {
        "Content-Type": "multipart/form-data; boundary=AaB03x" +
        "--AaB03x" +
        "Content-Disposition: file" +
        "Content-Type: png" +
        "Content-Transfer-Encoding: binary" +
        "...data... " +
        "--AaB03x--",
        "Accept": "application/json",
        "type": "formData"
      },
      body: data
    }).then(function (res) {
      if (res.ok) {
        alert("Perfect! ");
      } else if (res.status == 401) {
        alert("Oops! ");
      }
    }, function (e) {
      alert("Error submitting form!");
    });
  }

这次,后端中的错误是: 路径为[]的上下文中的Servlet
[dispatcherServlet]的Servlet.service()引发了异常[请求处理失败;
嵌套异常是java.lang.NullPointerException],其根本原因是

我们是否添加多部分边界权?应该在哪里?也许起初我们是错误的,因为我们没有获得multipart / form-data。我们如何正确获得它?


问题答案:

我们只是尝试删除标题,它起作用了!

fetch("http://localhost:8910/taskCreationController/createStoryTask", {
      mode: 'no-cors',
      method: "POST",
      body: data
    }).then(function (res) {
      if (res.ok) {
        alert("Perfect! ");
      } else if (res.status == 401) {
        alert("Oops! ");
      }
    }, function (e) {
      alert("Error submitting form!");
    });


 类似资料:
  • 我们想将图像文件作为multipart/form发送到后端,我们尝试使用html表单获取文件并将文件作为formData发送,下面是代码 后端中的错误是“嵌套异常是org.springframework.web.multipart.MultipartException:无法分析多部分servlet请求;嵌套异常是java.io.IOException:org.apache.tomcat.util.

  • 我试图发送图像和文本字段到APIendpoint,但我收到 不支持的内容类型'多部分/表单数据;边界=---------------------------81801171514357 这是一个ASP. NET Core 2.1 Web API。我有这个: 而我的模特: 然后我使用axios: 我希望这个方法能够运行,而不是抛出异常。但是怎么做呢?我试图补充: 但是没有成功。 然后我试着: 该方法

  • 这是在服务器端作为接收的内容: 如何转换multipart Confont数据类型中的文章对象?我读到改造可能允许使用转换器为这个。就我对文档的理解而言,它应该是实现的东西。 多部分部件使用的转换器,或者它们可以实现来处理自己的序列化。 null

  • 我正在尝试用RestTemplate上传一个文件到带有Jetty的Raspberry Pi。在Pi上有一个运行的servlet: 这是我得到的输出: UI-elements.html已上传! org.springframework.web.multipart.support.StandardMultipartTtpServletRequest$StandardMultipartFile@47e76

  • 试图通过改装将表单数据发送到服务器,但无法向服务器请求。我想用他们的数据发布一个图像数组。 我尝试了许多解决方案,但无法发布包含其数据的图像阵列。当我从addFormDataPart中删除provider\u文档时,效果很好。 如何发送array,它在上运行良好。 请求Api

  • 我正在尝试将FormData从React JS发送到后端(express node server),如下所示。 我看到。我也尝试了这篇文章中的建议,但没有成功。感谢您的帮助。 如何从React js axios post请求发送FormData到节点服务器? 反应测试。js模块 快速Test.js 添加@con fused和@Kidas推荐的后,我可以在Express router中读取FormD