我得到了这块蛋糕的功能:
$.ajax({
url: 'Example.html',
DataType: 'text',
cache: false,
success: function (){
alert ('Yes');
},
error: function (){
alert ('No');
}
});
这个功能,工作正常,但仅限第一次),从第二次开始,该功能将以下错误发送给Chrome:
获取http://MyServer.com/Example.html?_=1406469092100 net :: ERR_FAILED
同样的情况与第二个JS选项同样发生:
function doesConnectionExist() {
var xhr = new XMLHttpRequest();
var file = "http://www.example.com/Example.html";
var randomNum = Math.round(Math.random() * 10000);
xhr.open('HEAD', file + "?rand=" + randomNum, false);
try {
xhr.send();
if (xhr.status >= 200 && xhr.status < 304) {
alert ('Yes');
} else {
alert ('No');
}
} catch (e) {
alert ('No');
}
}
1)在Ajax场景中,我只指出缓存:&#34; false&#34;!
2)在JavaScript场景中,我使用随机参数来避免缓存!
我有什么遗漏的吗?在服务器端??
请帮忙......
答案 0 :(得分:0)
这可能是服务器问题?我创建了一个jsFiddle,它似乎应该工作。我将$ .ajax方法包装在ping
函数中并运行3次获取jsfiddle资源。
function ping(i) {
$.ajax({
url: '/img/logo.png',
success: function () {
screen.log({text: 'attempt #'+(i+1)+ ' Yes', timed: +i, clear: 'no'});
},
error: function (d){
screen.log({text: 'attempt #'+(i+1)+ ' Nope', timed: +i, clear: 'no'});
}
});
}
请参阅已提及的jsFiddle输出
注意:在您的第二个代码段中,您提供false
作为open
方法的第三个参数,这意味着asynchronous = false
,因此XHR就是同步。第一个代码段中的cache: false
参数会将随机reuqeststring附加到请求中。这可以防止浏览器缓存提取的资源。我想这里没有必要。
答案 1 :(得分:0)
经过数小时和数小时尝试错误后,我找到了答案....专门针对那些面临同样问题的人:
在我的情况下,这不是一个常见的网页,它是一个&#34;脱机网页&#34;其中包含清单文件。
只需在&#34; NETWORK&#34;清单文件中包含文件&#34; Example.html&#34;那就是它。
那是所有人!