【已解决】同时使用ajax和form表单传数据的冲突问题
2021-11-26 14:28
148 查看
昨天踩了一个大坑,下面总结一下:
前后端数据交互的两种方式:
1、ajax发起请求(请求中可以带有数据)并获取返回的数据
下面给出一个ajax的常见格式:
$.ajax({ url:"http://www.test.com", //请求的url地址 dataType:"json", //返回格式为json async:true,//请求是否异步,默认为异步,这也是ajax重要特性 data:{"id":"1","name":"名字"}, //参数值 type:"GET", //请求方式 beforeSend:function(){ //请求前的处理 }, success:function(req){ //请求成功时处理 }, complete:function(){ //请求完成的处理 }, error:function(){ //请求出错处理 } });
实现这种方式的常见方法是给html的标签添加事件,用事件驱动ajax完成数据交互,比如:
<select id="myselect"> <option value="result_data" selected>全部数据</option> <option value="result_cj">财经</option> <option value="result_fc">房产</option> <option value="result_game">游戏</option> <option value="result_js">军事</option> <option value="result_jy">教育</option> <option value="result_kj">科技</option> <option value="result_qc">汽车</option> <option value="result_ty">体育</option> <option value="result_tyjd">体育焦点</option> <option value="result_zhty">综合体育最新</option> <option value="result_yl">娱乐</option> </select> <button onclick="tijiao()">检索</button>
上面的代码通过给一个button添加tijiao( )事件,把select标签的数据传递到后端
function tijiao(){ var select_value= document.getElementById("myselect").value $.ajax({ url:"/cloud_data?data="+select_value+"", async:true, success:function(data) { option.series[0].data=data.data // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); }, error:function (xhr,type,errorThrown) { alert("出现错误!") } }) }
2、提交form表单发起请求并传递数据
如果想把select标签的数据传递到后端,还有一种方式是提交表单,也就是使用form和input标签的submit。
关键在于form提交和ajax提交这两种方式是不可以混用的,因为表单和ajax同时提交的话,页面就会整体刷新。
我的问题在于在一个form表单的有submit属性的标签上添加了ajax事件,用两种方式同时提交数据,每次提交之后,ajax并不能获取到后台传回的数据,
因为ajax执行成功之后,form表单也提交了,页面会整体刷新一次,数据无法回传也就无法进行下面的操作,这样就进入了一个错误的循环,每次提交
数据确实可以提交到后端,但是返回的数据无法被接收,因为页面被整体刷新了。
相关文章推荐
- 表单包含file上传文件提交,使用ajaxSubmint或者ajaxForm 遇到的问题以及解决方法
- yii 使用cactiveform 创建表单时候遇到的一些验证问题和使用ajax_form时重置验证规则的解决办法
- 使用serialize()提交form表单数据后台为null问题解决
- 关于jQuery使用serializeArray()序列化表单数据,使用FormData()实现AJAX请求的问题
- ajax无法正常下载poi动态生成word文件,可使用form表单提交解决问题
- 解决ext与ueditor同时使用,引入js文件冲突问题
- struts2框架中,使用iframe/form方式的ajaxupload,提示下载json的问题解决
- AJAX和form表单提交的中文转码问题全面解决,encoderURL两次转码的真相
- easyui关于解决tab添加的页面通过href加载数据内容的页面刷新后form表单重复提交的问题;
- jquery序列化form表单使用ajax提交后处理返回的json数据
- PHP form表单post提交 使用var_dump($_POST)获取不到数据 可能是哪里出问题?
- JS将form表单转换为json数据,使用ajax发送请求案例
- ajax 技术同时加载多个结果集并赋于同一控件上解决数据冲突出现错乱现象方法
- 关于文本域不能在form表单或table不能使用问题,现在用样式解决
- 解决ListView和ScrollView同时使用时滑动的冲突问题
- <form>表单和ajax同时使用导致json报错
- 关于form表单中使用ajax提交表单,ajax无法success的问题
- 使用dbms_rectifier_diff解决高级复制中的数据冲突问题
- 解决在java的ssm框架中使用ajax提交数据遇到的跨域问题
- javascript:同时使用form表单还有ajax会怎么样?