发送 Form-Data 数据时,浏览器是否自动设置 Boundary?

发送 Form-Data 数据时,浏览器是否自动设置 Boundary?

发送 form-data 数据时,浏览器是否自动设置 boundary?

在发送 Form-Data 数据时,浏览器会自动为数据生成一个 Boundary,该 Boundary 将数据划分成不同的部分。开发者无需手动设置 Boundary。

不过,开发者可以在发送数据之前获取 Boundary 的值,这点并不常见。如果在请求中手动指定了 Content-Type,包括 Boundary,那么后端解析请求可能会出现问题。

以下代码演示了如何在 jQuery.ajax() 请求中获取 Boundary:

$.ajax({
  type: "post",
  url: "/login",
  data: formData,
  success: function(res) {},
  processData: false,
  contentType: "multipart/form-data; boundary=" + getBoundary(),
   error: function(xhr) {
          console.log(xhr)
      }
});

其中,getBoundary() 函数返回一个随机生成的字符串,作为 Boundary 的值。需要注意的是,直接设置 contentType 为 false 可能会更简单有效。

参考资料:

以上就是发送 Form-Data 数据时,浏览器是否自动设置 Boundary?的详细内容,更多请关注硕下网其它相关文章!