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。