以下代码将数据提交给服务器。在提交给服务器之前,数据实际存储在localStorage中。这是因为我要求用户能够在没有互联网连接的情况下使用我的系统。
问题在于,当没有互联网连接时,显然它无法将数据发布到服务器。在这种情况下我该怎么办?
$('#btnSync').on('click', function(e) {
var my_data = {};
var my_value = [];
for ( var i = 0, len = localStorage.length; i < len; ++i ) {
if((localStorage.key( i ).includes('set'))){
var lsItems = JSON.parse(localStorage.getItem( localStorage.key( i ) ));
allItems[localStorage.key( i )] = lsItems;
}
}
$.ajax({
url: "action.php",
type: "POST",
data: {'action':'btnSync','allItems':allItems},
dataType: "json",
success: function(data) {
$.notify(
{
message: data.message
},
{
type: data.status,
placement: {
from: "top",
align: "left"
},
newest_on_top: true,
delay: 0
}
);
},
error: function(data){
$.notify(
{
message: 'Unexpected error occured, please kindly contact System Administrator'
},
{
type: 'danger',
placement: {
from: "top",
align: "left"
},
newest_on_top: true,
delay: 0
}
);
}
});
});
答案 0 :(得分:1)
您可以使用类似的ajax调用来检查连接/服务器是否正常运行。寻找
statusCode.status == 0
出错并向用户提供目的地无法访问/互联网通知。您可以将此ajax调用创建为函数中的promise,并在所有ajax调用之前使用它,并要求用户连接到Internet然后重试。