当前位置: 首页 > news >正文

form表单提交前设置请求头request header及文件下载

需求:想要在form表单submit之前,设置一下请求头。

除了用Ajax发起请求之外,还可以使用FormData来实现,咱不懂就问。

1 问:FormData什么时间出现的?与ajax什么联系?

2 问:FormData使用方法

参考示例:

<form id="testForm"><input name="username" />
</form>

js:

let data= new FormData(document.getElementById('testForm'));
let xhrObj = new XMLHttpRequest();
xhrObj.open('POST', url, true);
xhrObj.setRequestHeader('自定义请求头', '值');
xhrObj.onload = function () {if (xhrObj.readyState === 4 && xhrObj.status === 200) {console.log(xhrObj.responseText);} else {// 请求错误}
};
xhrObj.send(data);

如果请求是一个下载文件(二进制流)的url,除了需要额外设置下responseType之外,还需要添加模拟触发下载的代码:

let data= new FormData(document.getElementById('testForm'));
let xhrObj = new XMLHttpRequest();
xhrObj.open('POST', downloadUrl, true);
xhrObj.setRequestHeader('自定义请求头', '值');
xhrObj.responseType = 'blob';
xhrObj.onload = function () {if (xhrObj.readyState === 4 && xhrObj.status === 200) {let content= xhrObj.getResponseHeader('Content-Disposition');let fileName = content.split(';')[1];fileName = decodeURI(fileName.split('=')[1]);let respObj= xhrObj.response;let downloadLink = document.createElement('a');downloadLink.href = URL.createObjectURL(respObj);downloadLink.download = fileName;downloadLink.click();} else {// 请求错误}
};
xhrObj.send(data);

相关文章:

  • 佐航BYQ2321直阻变比二合一全面升级!
  • Linux进程地址空间
  • Zephyr kernel Build System (CMake)介绍
  • 如何配置Spark
  • 技术视界 | 从自然中获取智慧: 仿生机器人如何学会“像动物一样思考和行动”
  • 基于 Python(selenium) 的今日头条定向爬虫:根据输入的关键词在今日头条上进行搜索,并爬取新闻详情页的内容
  • 使用spring boot vue 上传mp4转码为dash并播放
  • Pycharm(六):可变与不可变类型
  • 3.3 Spring Boot文件上传
  • 2025年深度学习模型发展全景透视(基于前沿技术突破与开源生态演进的交叉分析)
  • 【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明
  • Linux系统下的常用网络命令
  • 如何在SOLIDWORKS中高效管理文件属性?
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • macOS 更新后找不到钥匙串访问工具的解决方案
  • Flutter Dart中的函数参数 默函数的定义 可选参数 箭头函数 匿名函认参数 命名参类数 闭包等
  • 如何通过python连接hive,并对里面的表进行增删改查操作
  • 信奥赛之c++基础(计算机存储+数据类型转换)
  • kafka和Spark-Streaming2
  • Linux常用中间件命令大全
  • 女儿被偷拍后,一个父亲的战斗
  • 精准滴灌“种企业”,苏南强县常熟新的进阶密码
  • 巴印在克什米尔发生交火
  • 国务院同意在海南全岛和秦皇岛等15个城市(地区)设立跨境电子商务综合试验区
  • 安徽铁塔回应“指挥调度中心大屏现不雅视频”:将严肃处理
  • 3岁男童疑遭父亲虐待,杭州警方:在异地发生,嫌疑人已被抓