我正在做一个项目,我从我的服务器数据库中获取特定用户并将用户数据插入本地电话数据库。我正在使用事务中的 ajax(jsonp) 请求执行此操作(请参阅代码)。如果我运行这段代码,它会给我一个 INVALID_STATE_ERROR。
我尝试将 tx.executeSql 包装在 db.transaction 中(在 ajax 调用成功的情况下),这消除了 INVALID_STATE_ERROR 但它不会插入任何数据。
帮助!
交易代码:
db.transaction(function(tx)
{
tx.executeSql('DROP TABLE IF EXISTS userdata');
tx.executeSql('CREATE TABLE IF NOT EXISTS userdata (id INTEGER PRIMARY_KEY, name)');
$.ajax({
url: 'http://[myserver]/getUser.php',
type: 'get',
data: {'user': enteredUser, 'pass': enteredPass},
dataType: 'jsonp',
contentType: "application/json",
jsonpCallback: 'getUser',
/*async: false,*/
timeout: 5000,
success: function(data, status) {
//alert(data.name);
tx.executeSql('INSERT INTO userdata (id, name) VALUES (' + data.id + ', "' + data.name + '")');
},
error: function(a, b, c){
alert('Update Failed: ' + a.status);
alert('Update Failed: ' + c);
}
});
},
onNoUser,
function()
{
db.transaction(checkLogin, showLogin);
});
如果需要更多代码或信息,请告诉我!
谢谢你们!