我基本上只是試圖通過AJAX提交表單,並希望顯示處理PHP頁面的返回。 PHP頁面僅驗證輸入並顯示發生的錯誤或向用戶發送的感謝消息。通常我不會使用ajax,但在這種情況下,客戶設置需要我。表單提交
這聽起來很簡單,但我無法讓它工作。
了jQuery(1.4.2)的代碼我使用:
$(document).ready(function() {
$('#subscription').submit(function() {
var inputdata = $('#subscription').serialize();
alert(inputdata);
$.post("process_form.php", inputdata, function(data) {alert(data);});
});
});
螢火蟲只顯示:
POST process_form - 狀態:已中止
另一個有趣的結果是成功處理程序實際上被調用,但沒有顯示responseText。我的apache日誌顯示了處理表單的304 http消息,在此之後,它顯示另一行狀態碼爲200的表單,就好像它被重定向到那裏一樣,無論這是否是正常的AJAX行爲,我不知道。
W3C狀態here:
如果Location頭傳達的URL的起源與XMLHttpRequest的起源和重定向不違反無限循環的注意事項同根同源,透明地執行重定向,同時觀察相同 - 原始請求事件規則。否則,這是一個網絡錯誤。
但我不認爲我的請求違反了這些規定。
無論如何,長話短說:我卡住了。
任何幫助將非常感激,當然我很樂意提供任何進一步需要的信息。
非常感謝您的時間。
一切順利,
-G
非常感謝您的回覆,將此添加到submit()塊確實改變了一些內容。該請求現在成功,並且Firebug顯示「找到302狀態」,但仍然沒有給出responseText。我會測試一些事情,看看我現在能否實現它。乾杯! – 2010-09-06 13:20:09
更新:它現在有效,我的PHP中的某些內容解僱了302,但我知道可能發生。非常感謝你的幫助:) – 2010-09-06 13:25:48
這是一個救生員 - 非常感謝你! – rshimoda 2011-09-22 21:43:23