Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件上传:谁负责设置HTTP头_Http_File Upload_Http Headers - Fatal编程技术网

文件上传:谁负责设置HTTP头

文件上传:谁负责设置HTTP头,http,file-upload,http-headers,Http,File Upload,Http Headers,我试图理解HTTP文件上传是如何工作的 例如,我的VueJS应用程序正在使用Axios调用REST API。调用axios.request时,未设置任何标头。只有一个FormData对象包含要上载的文件 当请求到达后端时,我看到一个内容类型:multipart/formdata。。。标头已添加到请求中 这个标题是在什么时候创建的?谁负责创建标题?如果是文件上传Ajax请求,则在Axios中,由浏览器设置内容类型:multipart/form data;。。。标题 在负责XMLHttpReques

我试图理解HTTP文件上传是如何工作的

例如,我的VueJS应用程序正在使用Axios调用REST API。调用axios.request时,未设置任何标头。只有一个FormData对象包含要上载的文件

当请求到达后端时,我看到一个内容类型:multipart/formdata。。。标头已添加到请求中


这个标题是在什么时候创建的?谁负责创建标题?

如果是文件上传Ajax请求,则在Axios中,由浏览器设置内容类型:multipart/form data;。。。标题

在负责XMLHttpRequest的Axios源代码中,将检查HTTP请求数据。如果它是FormData的一个实例,则内容类型头将被删除,并让浏览器执行此操作

在中,请查看源代码中的注释:

if (utils.isFormData(requestData)) {
  delete requestHeaders['Content-Type']; // Let the browser set it
}
对于utils.isFormData,逻辑为:

// code in lib/utils.js
function isFormData(val) {
  return (typeof FormData !== 'undefined') && (val instanceof FormData);
}