现象
Ajax发送请求 在浏览器的Network发现 响应状态 变为 cnaceled

解决方案
1.表单提交时用的是自定义的button 调用ajax 和form表单中的属性action冲突,

form action与绑定于button上的click事件会同时触发。form action将表单内容以get请求追加至当前url上,url变更后会导致页面重新加载, 而这正是导致post请求在执行后就被终止的原因。

解决
三选其一

  1. 去掉form标签换成div标签 可用button
  2. 去掉button可用form
  3. 使用input标签的button类型

我是使用此种方式解决了该问题
2.ajax请求默认是异步的。把请求改成同步的就行了。解决:设置如下参数:async: false

$.ajax({url:'xxx',type:'post',data Type:'JSON',data:{},async:false,  //同步success:function(data){}
})

3.ajax嵌在form里提交,然后form的提交先于ajax,导致ajax的请求没有成功,状态为canceled。解决:在ajax完成后加一个return false;取消了form提交。

模拟案例
Ajax请求成功后执行回调方法后页面会自动刷新问题

小遗憾

  1. 可惜暂时未成功模拟到 请求状态为 canceled 的效果
  2. 注意函数名不能使用login 会冲突
  3. 使用第二个登陆 input 方式登陆
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Ajax请求成功后执行回调方法后页面会自动刷新问题</title></head><body><form><input type="text" name="username" id="username" value="yc" ><input type="password" name="password" id="password" value="123456"><button onclick="logins()" id="login">登陆</button><!-- 使用input方式  --><input type="button" onclick="logins()"  value="登陆"></form><script src="js/jquery-3.5.0.js"></script><script>function logins(){$.ajax({url:"user?op=login",type : "POST",data:{username:$("#username").val(),password:$("#password").val(),},dataType: "json", contentType: "application/json; charset=utf-8",async:false, //同步success:function (data) { //回调函数if("success" == data){window.location.href = "../index.html";return false;}},error:function (data) {alert("失败,请重新登录!"); }})return false;//阻止表单提交刷新}</script></body>
</html>

效果展示
点击第一个按钮登陆

  1. 404因为我未使用对应的servlet 可以忽略 只为 确认是否发送请求
  2. 触发的button的submit 默认效果 get请求url地址栏传参
  3. 第二个get请求 导致页面重新刷新

Http响应状态Status为canceled相关推荐

  1. 响应状态status为canceled,解决办法

    在做ajax请求的时候,我也遇到响应状态status为canceled这样的坑.如下图 网上找了很多资料都没解决到.最后发现是ajax请求默认是异步的.我把请求改成同步的就行了.设置如下参数:asyn ...

  2. ajax 请求被终止 chrome查询发现请求状态status为canceled

    检查页面的network执行中发现页面被刷新了url改变了导致请求在请求过程中被终止了. 检查代码发现在 submit方法中最后写了个  location.reload();方法 来重载页面 虽然是卸 ...

  3. Http Status 304响应状态的资源更新机制

    2019独角兽企业重金招聘Python工程师标准>>> http请求头和响应头可以避免重复的资源(css,js,图片,文本等),浏览器一般访问这些静态资源之后会缓存一段时间,静态资源 ...

  4. ABAP应用服务器的HTTP响应状态码(Status Code)

    最近Jerry参与了SAP Commerce Cloud的标准开发,我们调用微软云平台Azure上创建Lambda Function的Restful API来创建Lambda Function: 在开 ...

  5. python构造响应头_Python爬虫库requests获取响应内容、响应状态码、响应头

    首先在程序中引入Requests模块 import requests 一.获取不同类型的响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 ...

  6. arduino服务器_如何使用Arduino检查Web服务器的响应状态

    arduino服务器 by Harshita Arora 通过Harshita Arora 如何使用Arduino检查Web服务器的响应状态 (How to use Arduino to check ...

  7. fastapi 响应模型 / 响应状态码 / 表单参数

    文章目录 1. response_model 2. 添加输出模型 3. 响应模型编码参数 4. response_model_include 和 response_model_exclude 5. 代 ...

  8. PHP. 02®. Ajax异步处理、常见的响应状态、XMLHttpRequest对象及API、ajax的get/post方法、...

    异步对象 a)创建异步对象 b)设置请求的url等参数 c)  发送请求 d)注册时间 e)在注册的事件中获取返回的内容并修改页面显示的内容 布尔类型不能直接用echo输出 常见的响应状态 Ajax概 ...

  9. python request返回的响应_Python爬虫库requests获取响应内容、响应状态码、响应头...

    首先在程序中引入Requests模块 import requests 一.获取不同类型的响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 ...

最新文章

  1. 必须为元素类型 association 声明属性 oftype。_CSS相关的选择器和属性介绍
  2. 改变电子商务行业业务的人工智能趋势
  3. 看不见的攻击面:查看 SQLite 数据库就中招?
  4. 解读网络“攻城狮”的发展---老赵带你铺一段路
  5. Docker1.12.1之swarm集群搭建与使用
  6. 【混沌加解密调制解调】基于FPGA的混沌自同步混沌数字保密通信系统
  7. 数据挖掘导论读书笔记3--分类
  8. window上安装elasticserach
  9. day15 接口与异常
  10. ASP.NET视图状态解析(本博客仅是自己留着作为存储学习)---选自MSDN
  11. python 模拟浏览器selenium_使用python selenium webdriver模拟浏览器
  12. 谈谈Pod在微服务中的运用
  13. openjudge-1664 放苹果
  14. 牛腩新闻发布系统-发布
  15. docucentre s2011默认登录密码
  16. excel随机数_Excel使用小技巧-Excel里快速生成随机数
  17. 华大HC32L130 SPI和GPIO模拟驱动NF-03和NF-01-s模块(SI24R1方案,兼容NRF24L01)
  18. html打造动画【系列2】- 可爱的蛙蛙表情
  19. 打印Service运行时间与Aspect相关注解使用
  20. 21、22、23、53、80、123、161、1433、3306、3389 端口的用途或协议

热门文章

  1. jmx_exportter+prometheus+grafana监控hadoop
  2. linux下的/dev/shm/
  3. 设计模式学习(一):设计原则
  4. 5G的哀伤,4G手机占比再创10个月来新高,买5G手机的消费者减少了
  5. 2-微信红包(2016腾讯校招)
  6. js动态设置文字大小
  7. VS 0xC0000005 运行错误分析
  8. matlab 线性调频,线性调频(LFM)仿真
  9. 常用物流快递单号查询接口种类及对接方法
  10. java计算机毕业设计酒店订房系统源码+数据库+系统+lw文档+mybatis+运行部署