jqueryajax在200之前获得304

jqueryajax在200之前获得304,ajax,jquery,Ajax,Jquery,如何在jQuery中确保服务器只有在成功的200请求之后才响应304 我看到了这样一个问题:客户端(正在进行jquery.ajax()调用的浏览器)关闭了一个连接,但是客户端到服务器的后续请求会导致304响应代码 所提供的文件是一个静态文件。这将是浏览器缓存,在对同一文件进行ajax调用时会产生一个304 Not Modified头,您需要像这样打开缓存: $.ajax({ url : 'whatever.html', type : 'POST', cache : fal

如何在jQuery中确保服务器只有在成功的200请求之后才响应304

我看到了这样一个问题:客户端(正在进行jquery.ajax()调用的浏览器)关闭了一个连接,但是客户端到服务器的后续请求会导致304响应代码


所提供的文件是一个静态文件。

这将是浏览器缓存,在对同一文件进行ajax调用时会产生一个304 Not Modified头,您需要像这样打开缓存:

$.ajax({
   url   : 'whatever.html',
   type  : 'POST',
   cache : false
})

听起来好像文件正在被缓存-你不想这样吗?这有帮助吗?嘿@thatidiotguy,是的,文件正在被缓存,但我怀疑在第一个请求中是否提供了完整的文件。我猜客户端在下载过程中关闭了连接,所以没有完整的文件。但随后的请求会读取不完整的缓存文件。是否可以在客户端/服务器端禁用此功能谢谢。您知道服务器在成功响应200之前是否可以使用304。不知道,您的头每个请求只能包含一个响应代码,所以它是或。您可以在服务器端打开该文件的缓存,但如何做到这一点取决于您使用的服务器及其设置方式?我想我还不清楚。我的意思是,在服务器响应200响应代码之前,它可以响应304代码吗。假设客户端开始下载文件,但在两者之间结束。被终止的请求的响应代码是什么。后续请求的响应代码是什么?不是这样的,浏览器向服务器发送请求,请求资源,服务器发送一个头,指示要做什么,如果是200,没关系,该文件存在,我们可以开始下载,它是304文件已经缓存在浏览器中,我们不必再次下载它,如果它是404文件根本不存在。现在,您可以发送一个响应代码,然后对其进行更改,因为此时已经发送了头,您只能发送一个响应代码,所以要么发送,要么发送,不能同时发送。上面的答案应该可以通过ajax请求解决。