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

window.location.href 与form method=post 一起使用时需要注意这个问题

最近写了写前端(本人属于前端小白),想实现一个功能,在前端选择时间范围,然后获取这个时间范围内的数据内容,UI如下图:

具体实现细节要求:点击提交按钮后,把开始时间和结束时间的内容作为url参数提交(目的是与后端进行交互) ,实现如下

http://127.0.0.1:5000/main?page=2&start_date=2024-08-01&end_date=2024-08-22

编写的代码如下:

   <form method="post">
         <div class="form-group">
             <label for="start_date">开始时间:</label>
             <input type="date" class="form-control" id="start_date" name="start_date" value="{{start_date}}">

         </div>
         <div class="form-group">
             <label for="end_date">结束时间:</label>
             <input type="date" class="form-control" id="end_date" name="end_date" value="{{end_date}}">

         </div>

     <button class="btn btn-primary" onclick="navigateWithDates()">提交</button>
   </form>

<script>
 function navigateWithDates() {
      var startDate = document.getElementById('start_date').value;
      var endDate = document.getElementById('end_date').value;
      var url = "{{ url_for('home', page=1, start_date=startDate, end_date=endDate) }}";
      window.location.href = url;  }
</script>

我想通过上面代码中的

  var url = "{{ url_for('home', page=1, start_date=startDate, end_date=endDate) }}";
  window.location.href = url;  }

来实现url的赋值和跳转,然后就遇到了一个问题,url中的 start_date 和end_date并不会实现对应的startDate和endDate的赋值操作!

但是在后端,我获取到的start_date 和end_date值却是前端中startDate和endDate的值,代码如下:

start_date = request.form.get('start_date')
end_date = request.form.get('end_date')

真是百思不得其解啊,各种网络搜索都没有结果,最后自己出去散散步,放松放松,突然来了灵感!问题出现在了第一句代码   <form method="post">,这个form使用的是post方法(通常使用post方法较多),而上面的代码window.location.href = url;  是只支持get方法的!如果大家想了解如何在js中实现post方法,可以参考文章:

Js中的window.location.href 只支持get方法,想要实现post方法该怎样处理呢?-CSDN博客

发现了问题,解决就很容易了,把 <form method="post">中的post 换成"get"即可!

我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!


http://www.kler.cn/a/510935.html

相关文章:

  • RabbitMQ---事务及消息分发
  • Linux-性能分析top
  • vscode离线安装插件--终极解决方案
  • 周末总结(2024/01/18)
  • Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)
  • IoTDB 数据类型相关问题
  • 全自动化河道水位监测系统:实时传输与远程监控
  • MySQL基于gtid的主从同步配置
  • Mono里运行C#脚本29—mono_trampolines_init
  • 管理口令安全和资源(一)
  • Java锁 可重入锁(递归锁) 深入源码解析 ReentrantLock synchronized
  • Linux TFTP 使用
  • 第38天:Web开发-JS应用NodeJS原型链污染文件系统Express模块数据库通讯审计
  • C语言之文本加密程序设计
  • Three.js贴图加载与环境遮蔽贴图强度设置(五)
  • 【Java回顾】Day7 Java IO|分类(传输方式,数据操作)|零拷贝和NIO
  • Linux 创建用户
  • 数据结构——链表和单向链表
  • 02内存结构篇(D2_剖析运行数据区)
  • Java——Stream流的peek方法详解
  • 【opencv】第9章 直方图与匹配
  • 基于.Net Core+Vue的文件加密系统
  • MySQL 可视化工具
  • 31、【OS】【Nuttx】OSTest分析(1):stdio测试(一)
  • MySQL程序之:使用类似URI的字符串或键值对连接到服务器
  • ubuntu24.0安装JDK8-281版本