我正在使用jQuery ajax()方法将(GET)数据传递到另一个ExportData页面,并获取返回的数据(“成功/失败“)。 ExportData页面在返回“成功/失败”之前大约需要10秒。jQuery .ajax()在Safari中无法使用时,它需要几秒钟才能获取返回的数据
我使用的代码在其他浏览器(FF/IE/Chrome)中运行良好,但在Safari中无效。在Safari的代码检查器中,状态码显示为-1001,没有收到数据。虽然还有其他ajax()请求(不需要这个页面返回数据),并且它们可以工作(状态为200)。
我有一个猜测,发送和接收数据之间的长时间间隔导致Safari的错误。但是我也发现-1001错误显示很快,这可能意味着ExportData.php没有执行。
有没有人有关于这个问题的想法?对你的帮助表示感谢!
的代码是:
ExportData: function (date,view) {
ajaxcall.data = {};
ajaxcall.url = 'ExportData.php?Date='+date+'&View='+view;
ajaxcall.callbackfunction = UserEvents.ExportSuccess;
ajaxcall.Call();
},
的 “AjaxCall的” 在另外的文件:
var ajaxcall = {
SitePath: '',
data: '',
url: '',
callbackfunction: '',
fileElementClass: '',
AjaxRequest: false,
callback: true,
Call: function() {
if (ajaxcall.AjaxRequest == true) {
alert(ajaxcall.AjaxRequest);
return;
}
else {
try {
ajaxcall.AjaxRequest == true;
$.ajax({
type: "GET",
url: ajaxcall.url,
data: ajaxcall.data,
dataType: "json",
async: false,
success: function (data) {
if (ajaxcall.callback == true) {
ajaxcall.callbackfunction(data);
}
},
error: function (request, status, error) {},
complete: function() {
ajaxcall.AjaxRequest = false;
}
});
}
catch (e) {
ajaxcall.AjaxRequest == false;
}
}
},
};
感谢,刘松涛
使用Fiddler或Charles代理等工具查看服务器上的实际状态码。我认为Safari浏览器在更大的状态代码时遇到了一些问题,并将其转化为负数。 – epascarello
非常感谢您的建议,我现在得到了实际状态码,这令我惊讶。所以现在的问题是,请求已发送,但Safari不接收数据.. – seanl