的Ajax
异步Javascript和XML“.Ajax松散地定义了一组 有助于使Web应用程序呈现更丰富用户的技术 经验。完成数据更新和刷新屏幕 异步使用javascript和xml(或json或只是普通的http 交)
恢复
“代表性国家转移”。使用REST原则的应用程序 有一个Url结构和一个旋转的请求/响应模式 围绕资源的使用。在纯模型中,HTTP Verbs Get, Post,Put和Delete用于检索,创建,更新和删除 资源分别。放置和删除通常不使用,留下Get 和发布到地图以选择(GET)和创建,更新和删除(POST)
我真的对这些术语感到困惑,我用Symfony2编写网站并且一切都能正常工作,但是一旦我的老板问我是怎么做的,我真的不知道用它来解释它的话。它可能会因为我把这一切都作为一种爱好开始,并将我的生命都集中在实用的部分上。
假设我在客户端(javascript)上有这段代码:
function image_remover(myimageId,path)
{
var xml = ( window.XMLHttpRequest ) ?
new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xml.open("GET", path+"?imageId="+myimageId, true);
xml.setRequestHeader("Content-type", "application/json");
xml.onreadystatechange = function()
{
if( xml.readyState === 4 &&
xml.status === 200 )
{
var serverResponse = JSON.parse(xml.responseText);
switch(serverResponse.d)
{
// do stuff
}
}
}
xml.send(null);
}
这在服务器端(PHP / Symfony2 Controller with annotation)
/**
*@Route("/removeImage",name="image_remover")
*/
public function removeImageAction(Request $request)
{
//If user is not logged in..
if (false === $this->get('security.context')->isGranted('ROLE_USER'))
{
//ip block
return new Response("an error has occured");
}
//My requests
$current_imageId = intval($request->query->get('imageId'));
//Getting image repository
$em = $this->getDoctrine()->getManager();
$db_myimage = $em->getRepository('GabrielUploadBundle:Image')->findOneById($current_imageId);
//if image was found
if($db_myimage)
{
//Owner of this image
$imageowner = $db_myimage->getImageowner();
//Getting user name
$user = $this->getUser();
$current_username = $user->getUsername();
// is username == imageowner? if not = block ip
if($current_username == $imageowner)
{
//remove image from database
$em->remove($db_myimage);
$em->flush();
// d = deleted y = yes
$response = array("d"=>1);
return new Response(json_encode($response));
}
else
{
//ip block
$response = array("d"=>0);
return new Response(json_encode($response));
}
}
else
{
//image object not found
//d = deleted, n = not found
$response = array("d"=>0);
return new Response(json_encode($response));
}
}
}
我在这段代码的哪一部分使用REST? AJAX是什么部分?我甚至使用REST吗?
答案 0 :(得分:10)
我不会详细评论您的代码,但是:
AJAX基本上是指在JavaScript中发送异步请求,传统上发送/接收XML(尽管现在经常使用JSON而不是XML)。 这就是你在客户端使用的技术。
REST是HTTP请求交换的概念,因此您可以针对在服务器端实现的REST-API进行RESTful请求调用(例如,获取' get')。
您可能希望在维基百科和其他易于访问的信息源上阅读有关REST和AJAX的内容。