文件上传:谁负责设置HTTP头
我试图理解HTTP文件上传是如何工作的 例如,我的VueJS应用程序正在使用Axios调用REST API。调用axios.request时,未设置任何标头。只有一个FormData对象包含要上载的文件 当请求到达后端时,我看到一个内容类型:multipart/formdata。。。标头已添加到请求中文件上传:谁负责设置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
这个标题是在什么时候创建的?谁负责创建标题?如果是文件上传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);
}