从jQuery 1.5开始,根据XMLHTTPRequest的W3C规范,ajax方法现在可以通过调用success()处理程序正确处理304 Not Modified响应.这允许您的应用程序将请求视为成功,即使服务器实际上没有返回任何数据(因为您已经缓存了最新数据).

对于正常(未缓存)的GET请求,使用以下args调用成功处理程序:

data:{来自服务器的数据}

状态:好的

jqXHR:

状态:200

statusText:好的

responseText:{来自服务器的数据}

对于缓存的GET请求,使用以下args调用成功处理程序:

数据:未定义

状态:未修改

jqXHR:

状态:304

statusText:notmodified

responseText:{来自缓存的数据}

(至少,这是在IOS 4.2中返回的方式,对于通过清单文件使用应用程序缓存的Web应用程序.我认为这对于大多数平台/浏览器上的常规浏览器缓存是一致的).

您可以看到,如果请求为200 OK,则仅填充"data"参数; 其中jqXHR.responseText总是填充数据,无论该数据是来自服务器(200 OK)还是来自缓存(304 Not Modified).

鉴于此,在大多数GET请求中,您的成功处理程序将要对您获得的数据执行某些操作,而不管它来自哪里,对于您的成功代码来说,最好总是使用jqXHR.responseText,而不是做这样的事情:

if ("notmodified" === status) {

// do something with jqXHR.responseText

} else {

// do something with data

}

或者是否有一种情况,jqXHR.responseText 不会在成功处理程序中填充,但数据arg 会?

我必须通过我的代码库并更改所有成功处理程序(以前我在jQuery 1.4.2上,它总是返回数据,甚至从缓存中返回); 所以我只是想确保我以正确的方式处理它.(不要想达到目的,然后意识到我应该以另一种方式做到这一点).

ajax返回304,正确的方法来处理304未在jQuery ajax中修改相关推荐

  1. 不同服务器怎么响应ajax,如何从服务器获得响应而无需刷新和使用JQuery/AJAX?

    是否有任何"正确"的方式来获得服务器的响应,而不使用JQuery/AJAX,当然没有刷新页面? server.js:如何从服务器获得响应而无需刷新和使用JQuery/AJAX? v ...

  2. ajax加载vue数据,详解使用Vue.Js结合Jquery Ajax加载数据的两种方式

    整理文档,搜刮出一个使用vue.js结合jquery ajax加载数据的两种方式的代码,稍微整理精简一下做下分享. 废话不多说,直接上代码 html代码 demo {{message }} 测试jqu ...

  3. ajax参数xhrfields,使用xhrFields可以将进度功能添加到jQuery.ajax()中吗?

    简短的回答: 不,你不能这样做,你想用什么xhrFields. 龙答: 有一个XmlHttpRequest对象两份进度事件: 响应研究的进展(XmlHttpRequest.onprogress) 这是 ...

  4. ajax可以返回什么类型数据,Ajax返回数据类型

    MVC中,如果从controller返回的不是一个html,而是一个文本,使用AJAX中如何获取? 后台代码: public ActionResult UploadPicture() { return ...

  5. Ajax叠加(Ajax返回数据用Ajax发出)

    最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续 ...

  6. php ajax返回值会打印出来,ajax返回值有php字符

    jquery插件 - 表单插件 Jquery Form Plugin是jquery最重要的插件之一,它利用AJAX技术在不引起页面刷新的情况下POST表单.主要有两个方法:ajaxform和ajaxs ...

  7. java ajax 返回 乱码,java ajax 返回 乱码

    java ajax 返回 乱码 [2021-01-31 23:12:50]  简介: 解决java的ajax提交返回值中文乱码的方法:1.在RequestMapping的并发配置中加代码[produc ...

  8. ajax 怎么input赋值,jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签...

    jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签 发布于 2016-11-25 16:26:40 | 111 次阅读 | 评论: 0 | 来源: ...

  9. ajax调用asp.net,jQuery.ajax()调用asp.net后台方法(非常重要)

    http://www.cnblogs.com/zxhoo/archive/2011/01/30/1947752.html 用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. 先 ...

最新文章

  1. 技术驰援抗疫一线, Python 线上峰会免费学!
  2. Winform开发框架之通用人员信息管理实现代码介绍
  3. 打印 指定目录下和子目录下的的所有.java文件的路径. (使用FileFilter过滤器)
  4. python 利用pyttsx3文字转语音
  5. centos 安装配置ftp服务器
  6. Elasticsearch: too many open files
  7. Text段、Data段和BSS段
  8. 比较全的 Java8 9 lambda 应用
  9. 列表的pop()和路径拼接问题
  10. NumSharp  - Numerical .NET
  11. 背景图片的位置(HTML、CSS)
  12. EP100伺服电机驱动全套资料,STM32平台FOC控制
  13. 计算机毕设周记20篇,电子与计算机毕业设计周记.doc
  14. 在Postfix里给邮箱定虚拟别名
  15. IntelliJ inspection gives “Cannot resolve symbol“ but still compiles code
  16. 高通FastCV简介
  17. 【DeeplabV3+ get_miou_png】DeeplabV3+获取数据集预测结果灰度图
  18. 输入一个字符,小写字母转大写,大写字母转小写,数字则输出为自身
  19. RCP Editor 常见错误处理方法
  20. 最详细的***教程 下

热门文章

  1. Fiddler拦截指定站点并修改客户端request请求
  2. c蔚语言艺术,伊能静的语言艺术,写下老公和好友章子怡,网友称赞
  3. Angr(二)——angr_ctf
  4. 阿里OCR接入一个小注意事项
  5. javlib有新地址吗,《郭杰自杀》_郭杰自杀_NEWS下载网
  6. 华为e353无线网卡linux驱动,华为 E353驱动
  7. Cas(03)——Cas Server中各配置文件介绍
  8. 《计算方法》---雅克比迭代法和高斯赛德尔迭代法(python实现)
  9. 酷开系统这七大隐藏功能,你发现了吗?
  10. MacBook Pro 休眠后五国,自动重启报错