ajax请求状态为canceld

问题现象:Form表单点击Button提交时,第一次调用接口会失败,整个iframe被刷新,接口status为canceld,但是第二次点击Button提交时,接口调用成功。

原因:
1.ajax请求时,button导致Form表单的提交操作变更了当前的URL,导致当前正在执行的ajax请求中止操作。中止后该请求的状态码将为canceled。
2.而URL发生变更的原因是:Form表单的提交操作和表单中按钮的click事件同时发生了调用,其中按钮的click事件触发导致当前url发生了变更。
3.第二次ajax可以成功执行的原因(个人瞎猜),浏览器有防止重复提交机制,导致后续的Form表单的提交操作没有执行。

解决办法:
1、将Button移动到Form表单之外,
2、将Button的type设置为button(默认为submit),
3、在Form表单的提交event中调用e.preventDefault()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值