";回溯“;使用AJAX


"Going back" with AJAX

我是AJAX的新手,我还在学习,我用它来删除一个用户帐户。

所以,这是我的main.js代码:

function userDeleteAccout() {
 $.ajax({
  type: "post",
  url: "ajax.php?action=delete",
  error:function(){
   alert("Something went wrong!");
  }
 });
}

运行完美。

我的ajax.php应该是:

if() {
 header("");
 OR
 echo "";
}
else {
 header("");
 OR
 echo "";
}

但这不会运行。所以我需要再次处理结果(使用AJAX?)非常感谢。

$action = $_REQUEST['action'];
if($action == 'delete') {
 // perform delete operation
}
echo '1';
exit;

这里有几个问题。

您肯定是在javascript:中以POST的形式发送请求的

type: "post"

但随后通过URL字符串传递数据:

url: "ajax.php?action=delete"

你可能需要做的是这样的事情:

Javascript

function userDeleteAccout() {
  $.ajax({
      type: "post",
      data: { action: "delete" },
      url: "ajax.php",
      error:function(){
         alert("Something went wrong!");
      }
  });
}

PHP

$data = $_POST['data'];
if($data['action'] == "delete")
{
  doSomething();
  echo "Delete successfull";
}else{
  doSomethingElse();
  echo "Something else done";
}

您应该了解如何在JSON中管理请求和响应。这对初学者很有帮助:http://www.lennu.net/2012/06/25/jquery-ajax-example-with-json-response/

处理返回的数据时,可以使用.done():

function userDeleteAccout() {
  $.ajax({
      type: "post",
      data: { action: "delete" },
      url: "ajax.php",
      error:function(){
         alert("Something went wrong!");
      }
  }).done(function(msg)
  {
     alert(msg);
  });
}

点击此处查看jQuery文档:http://api.jquery.com/jQuery.ajax/

安全性

但作为最后一点,请在这里考虑安全性,因为任何人都可以向该url发送JS请求,强制进行某种删除

我可以转到您的页面,打开我的开发工具,运行一个带有post数据{action: 'delete'}的html请求,并将请求发送到您的ajax脚本,从而删除一些内容。

所以主要要做的是:

  • 清理进入PHP脚本的数据:如何防止PHP中的SQL注入
  • 保护您的端点,这样就没有人可以将发布请求传递到您的ajax.php