【发布时间】:2013-09-13 05:17:54
【问题描述】:
我的 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);没有执行。当我不想刷新浏览器时,我多次单击页面链接以产生结果。会迟到吗?
【问题讨论】:
-
我的问题不会出现在 chrome 和 firefox 中。经常在 Safari 中 :(。我真的很想知道为什么?
-
如果您真的不明白我的意思,请不要将其定义为重复。
-
和我描述的例子代码一样。不要以为我使用的是完整的代码。
-
我找到了一个,Safari没有通过我页面的锚链接重新加载js文件。
-
真的需要刷新才能重新调用js文件..为什么?