我是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