AMF與HTTP不同,它們是不同的協議。
當使用AJAX(jQuery或不)時,您在URI上調用HTTP方法,而不是OOP方法。因此,所有內容至少在兩個映射中結束:
- 將您的應用程序邏輯映射到方法和URI。
- 您的Javascript代碼映射到方法和URI。
下面是使用Respect\Rest一個樣本:
$router->get('/users/*', function($userName) {
return MyDatabaseLayer::fetchUser($userName); //Illustrative
})->accept(
'application/json' => function($data) {
header('Content-type: application/json');
return json_encode($data);
}
);
現在jQuery的部分:
$.getJSON('/users/alganet', function(user) {
alert(user.name);
});
您應該使用不同的操作相應的HTTP方法。保存的用戶會是這樣的:
$router->post('/users/*', function($userName) {
return MyDatabaseLayer::saveUser($_POST['user']); //Illustrative
});
的jQuery:
$.post('/users', $("$userform").serialize());
主要有四種HTTP方法:GET,POST,PUT和DELETE。 GET和POST是最常見的。
有一個很好的瑣事:HTTP,REST和AMF都是由同一個人寫的:Roy Fielding。
注意安全隱患:防止JavaScript(通過Jonathan Sampson接受的答案中的某些代碼訪問PHP)能夠訪問不需要的方法。 – koen 2012-04-28 17:34:50