小编典典

jQuery Ajax调用通常无法在Safari 6上运行

ajax

我的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);
没有执行。当我不想刷新浏览器时,我在页面的链接上多次单击以产生结果。会执行得晚吗?


阅读 351

收藏
2020-07-26

共1个答案

小编典典

最终,我发现了错误.. Safari甚至没有禁用Cache也不会重新加载我的JavaScript文件。因此,我将所有JS代码放入:

$(document).ready(function(){
 // start load my js functions
 init();
});

在页面准备好后重新加载JS文件。加油!

2020-07-26