我突然得到了一个非常奇怪的“错误”。到目前为止,这个脚本已经像一个魅力。但突然formData
变量没有通过jQuery.ajax
,就好像它不存在一样。奇怪的行为与jQuery.ajax
有趣的是,如果我触发alert
显示数据,它都可以。但是,只要我删除警报,php脚本告诉我formData
索引丢失。
我无言以对是什么原因导致这或如何解决这个问题: -/
这工作得很好我的开发服务器上,而不是在生产服务器上。
jQuery('#btn_saveForm').live('click', function() {
var instance = 'update';
var brand_id = jQuery('#itemID').val();
// Get form data
var form_data = jQuery("#data_form").serialize();
// alert(form_data); //If I uncomment this, the script works...
//Process form data
jQuery.ajax({
url: siteURL +"/wp-content/themes/my_theme/include/jquery.php",
data: {
instance : instance,
formData : form_data,
brandID : brand_id
},
success: (function(feedback) {
showFeedback(feedback);
}),
dataType: 'json'
});
});
这是一个疯狂的猜测,但事实上它在dev上工作,但没有部署时,建议我在服务器上建立MIME类型的问题,你实际上是否返回有效的JSON?可能是在Firebug中的提琴手或NET标签。尝试添加一个错误:函数(e){}块,以及看看什么是包含在e上的服务器(再次,通过萤火虫 - 假设VS不可用) – SpaceBison 2012-01-10 11:05:35
@SpaceBison - 谢谢。检查FF中的NET选项卡会告诉我所有的数据都是实际发送的!但是在被调用的PHP代码中执行'print_r($ _ REQUEST)'只显示'instance'和'brandID'。 – Steven 2012-01-10 11:43:51
@SpaceBison,它不返回任何东西,因为PHP文件找不到'$ _REQUEST ['formData']'。 – Steven 2012-01-10 11:50:36