Javascript ajax304未修改语法错误
我有一个单页javascript Web应用程序,我们从头开始开发(我知道我知道) 我们有一组集中的ajax默认值,它们的工作方式如下:Javascript ajax304未修改语法错误,javascript,jquery,json,ajax,http-status-code-304,Javascript,Jquery,Json,Ajax,Http Status Code 304,我有一个单页javascript Web应用程序,我们从头开始开发(我知道我知道) 我们有一组集中的ajax默认值,它们的工作方式如下: Model.defaultsLoader = function(message, config, callback, async, delay){ if(typeof delay === "undefined"){ delay = 3000; } var loader = new Loader(delay, messag
Model.defaultsLoader = function(message, config, callback, async, delay){
if(typeof delay === "undefined"){
delay = 3000;
}
var loader = new Loader(delay, message);
defaults = {
type: 'GET',
beforeSend: function(jqXHR){
var token = $("meta[name='csrf-token']").attr("content");
jqXHR.setRequestHeader("X-CSRF-Token", token);
},
success: function(response){
loader.stop();
if(callback){
callback(response);
}
},
error: function(jqXHR, textStatus, errorThrown ){
if (jqXHR.status === 401) {
document.location = "/";
}
else if(!death && jqXHR.status !== 200) {
loader.showError(textStatus + ": " + errorThrown);
Support.bugReport(
account.email + ', ' +
message + ': ' +
textStatus + ': ' +
errorThrown);
}
},
dataType: 'json',
async: async
};
for(var param in config){
defaults[param] = config[param];
}
return defaults;
};
我遇到的问题是,最近我们开始遇到问题,来自后端的304个未修改响应最终出现在错误处理程序而不是成功处理程序中。原因是“parseerror”。。。无论出于何种原因,JQuery试图在304响应(也就是“aka nothing”)上解析来自服务器的响应体。我知道空字符串不是有效的json,但我不理解为什么JQuery试图解析空字符串而不是加载缓存值。。。在某些情况下,这会在生产服务器上造成相当麻烦的行为
我已经包括了一个用于调试的打印输出的开发控制台屏幕截图。你必须原谅它是未展开的缩小代码
编辑:调试器显示的响应代码是200,而chrome开发工具显示的响应代码是304,这似乎也很奇怪。在错误函数中,
console.log(参数)编码>并粘贴输出。您正在针对缩小的版本进行调试吗?是否可以针对非精简版本进行调试?我有类似的问题(如果不是相同的话)$(.ajax)返回HTTP 304。即使在PHP端设置为标头(“Cache-Control:无缓存,必须重新验证”);还设置了var-request=$.ajax({url:urlink,cache:false})和相同的问题。。。其他人对此有任何更新吗?注意:正在尝试检索带有硬编码json数据的简单testdata.js文件。。。