我的Ajax调用非常简单,如下所示:
function ajax(reqUrl, params , callback) { console.log("Request URL "+reqUrl); var cond; cond = $.ajax({ type: 'post', url: reqUrl, data: params, error:function(){ alert("some error occurred") }, success: callback }); console.log("Server response "+cond.readyState); } // Call it as var url = "/getResult"; var params = {}; params.param1 = "test1"; params.param2 = "test2"; ajax(url, params, function(returnCallback) { console.log(returnCallback); alert("Success"); });
在大多数情况下都可以正常工作。但是有时(约3倍于1倍)它不会返回任何回调。
我 在Safari中无法正常使用Ajax的 问题中找到了很多问题和答案, 但是在chrome和FireFox中效果很好 。我的问题 与他们不同,因为在大多数情况下它都很好 (我并不是说那不是很好,通常是因为当我刷新浏览器时,这可能导致我的ajax调用起作用)。
我的主要问题是为什么我的Ajax调用有时会失败?我的JS控制台上没有任何错误。在这种情况下,我会刷新浏览器以获取我的Ajax调用。有任何想法吗?
更新:
我发现有时我的ajax调用方法没有调出,因为 console.log(“ Request URL” + reqUrl); 没有执行。当我不想刷新浏览器时,我在页面的链接上多次单击以产生结果。会执行得晚吗?
最终,我发现了错误.. Safari甚至没有禁用Cache也不会重新加载我的JavaScript文件。因此,我将所有JS代码放入:
$(document).ready(function(){ // start load my js functions init(); });
在页面准备好后重新加载JS文件。加油!