我把这个代码写在我得到的一个旧项目中。根据此代码,AJAX在控制器页面上发布数据,并在那里执行进一步的功能。这是代码:
$("#esti").submit(function(e){
$("#Complete").attr("disabled", "disabled");
e.preventDefault();
var formObj = $(this);
var emborderID = '?emborder_id='+'<?php echo $emborder_id?>';
var formURL = "order_process_controller.php"+emborderID;
if(window.FormData !== undefined) // for HTML5 browsers
{
$(".loading").show();
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, textStatus, jqXHR)
{
$(".loading").hide();
if(data=="success"){
window.location.href = "my_account.php";
}else if(data=="false"){
$("#msg_box").addClass("error-message");
}
else{
$("#msg_box").addClass("error-message");
$("#msg_box").html(data).show();
}
$("#Complete").removeAttr("disabled");
$('html, body').animate({ scrollTop: $('#msg_box').offset().top }, 'fast');
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log(jqXHR);
}
});
}
else //for older browsers
{
//generate a random id
var iframeId = 'unique' + (new Date().getTime());
//create an empty iframe
var iframe = $('<iframe src="javascript:false;" name="'+iframeId+'" />');
//hide it
iframe.hide();
//set form target to iframe
formObj.attr('target',iframeId);
//Add iframe to body
iframe.appendTo('body');
iframe.load(function(e)
{
var doc = getDoc(iframe[0]);
var docRoot = doc.body ? doc.body : doc.documentElement;
var data = docRoot.innerHTML;
//data is returned from server.
if(data=="success"){
window.location.href = "my_account.php";
}else if(data=="false"){
$("#msg_box").addClass("error-message");
}
else{
$("#msg_box").addClass("error-message");
$("#msg_box").html(data).show();
}
$('html, body').animate({ scrollTop: $('#msg_box').offset().top }, 'fast');
});
}
});
});
现在我遇到一个问题,有时页面不会启动AJAX请求或其他事情发生,页面将数据发布在同一页面上,而不是将其发布到控制器页面上。
请帮忙。