我突然得到了一個非常奇怪的「錯誤」。到目前爲止,這個腳本已經像一個魅力。但突然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