我正在構建一個AJAX表單,並試圖通過JSON發送3個字段。未在POST中發送JSON數據?
客戶端,形式序列化,並進入JSON格式:
$('#form-signin').live('submit', function(event) {
var target = $('#ajax');
var url = '/ajax/user/authenticateLevel2';
$.ajax({
type: "POST",
url: url,
data: $.base64.encode($('#form-signin').serialize()),
dataType: 'json',
success: function(data, status) {
$.getJSON(url, function(data) {
$('#ajax').html($.base64.decode(data.html));
$('#ajax').modal();
});
}
});
event.preventDefault();
});
服務器端,我的路由器把URL請求時,看到的是,第一部分包含「AJAX」然後繼續特意通過路由請求到AJAX處理程序。
我的問題是,即使在路由器內部,檢查$_REQUEST
,這是用來獲取有關帖子的信息,帖子數據不存在。 $_POST
也是如此。
即使是第一個網頁請求命中(的index.php),$_REQUEST
沒有數據。
我在做什麼錯?
服務器端,
該請求被髮送到的index.php其中包括自動裝載機和初始化腳本。
初始化腳本初始化數據庫連接,設置錯誤,異常和會話處理,然後傳遞到路由器請求。
的路由器,在其施工方法:設置URL作爲陣列(分解$_SERVER['REQUEST_URI']
),然後設置相關的控制器,方法和其他參數。
在這種情況下,我們正在做一個Ajax請求,特殊處理我們請求分派之前發生。
的方法,參數設置爲:用額外的信息(URL,控制器,方法和數據庫對象)沿對調度傳遞
$requestParams = $_REQUEST;
unset($requestParams['url']);
該請求參數(一個或多個)。
在所有情況下,我們使用這種方法主要是調度:
$dispatchedController = new $this->controller($this->database);
$method = $this->method;
return $dispatchedController->$method($this->params);
沒錯,螢火看到了報頭中的JSON,所以它肯定是送客戶端。甚至解碼JSON字符串,我得到我輸入的表單輸入。 – bear
@Shamil聽起來你應該發佈你的服務器端代碼,然後由於客戶端正在做什麼應該做的。 – Ulises
我已經在OP中添加了對進程的基本描述。 – bear