我正在使用我正在更新D& D字符信息的网站。在这个特定的页面上有可编辑的div,我在其中进行更改并通过(一个非常不一致的)ajax POST脚本提交。
不知何故POST不会提交任何更改,它可能是完全随机的。有时它可以工作并更新数据库,有时它不会。当然,你们不可能对我的服务器发布POST,但是ajax如下:
<script type="text/javascript">
$(document).ready(function() {
$("#actor_result").load('xml/actortoxml.php?owner=cederman&id=2');
$('#save_editable').click(function() {
var name = $(document).find('#actorname').text();
var current = $(document).find('#currenthealth').text();
var max = $(document).find('#maxhealth').text();
var effects = $(document).find('#actoreffects').text();
var notes = $(document).find('#actornotes').text();
$.ajax({
url: 'actor_profile.php',
type: 'POST',
data: {
update: 'true',
actorid: 2,
actorname: name, currenthealth: current, maxhealth: max, actoreffects: effects, actornotes: notes
},
});
window.location = 'actor_profile.php?id=2'
});
/*
var refreshId = setInterval(function() {
$("#actor_result").load('xml/actortoxml.php?owner=cederman&id=2');
}, 300000);
$.ajaxSetup({ cache: false });
*/
});
</script>
点击此处的小提琴进行说明: http://jsfiddle.net/CgLmW/2/
答案 0 :(得分:1)
由于$.ajax
是异步的,因此在ajax请求完成之前,您将从页面重定向。此重定向导致ajax请求在成功完成之前被杀死。
将重定向语句移至成功回调。
$.ajax({
url: 'actor_profile.php',
type: 'POST',
data: {
update: 'true',
actorid: 2,
actorname: name, currenthealth: current, maxhealth: max, actoreffects: effects, actornotes: notes
},
success : function() {
// gets called when ajax request completes successfully
window.location = 'actor_profile.php?id=2';
},
error : function(err) {
// in case of error
console.log(err);
alert('error');
}
});