我想在不刷新页面的情况下从数据库中提取一些数据。什么是最好的方式来做到这一点?使用XMLHTTPRequest从数据库中提取数据
我正在使用以下XMLHTTPRequest函数从cart.php
文件中获取一些数据(购物车项目)。该文件基于option
值执行各种功能。 例如:option=1
表示获得所有的购物车物品。 option=2
表示删除所有购物车物品并返回字符串"Your shopping cart is empty."
。选项= 3,4 ...等等。
我XHR功能:
function getAllCartItems()
{
if(window.XMLHttpRequest)
{
allCartItems = new XMLHttpRequest();
}
else
{
allCartItems=new ActiveXObject("Microsoft.XMLHTTP");
}
allCartItems.onreadystatechange=function()
{
if (allCartItems.readyState==4 && allCartItems.status==200)
{
document.getElementById("cartmain").innerHTML=allCartItems.responseText;
}
else if(allCartItems.readyState < 4)
{
//do nothing
}
}
var linktoexecute = "cart.php?option=1";
allCartItems.open("GET",linktoexecute,true);
allCartItems.send();
}
cart.php文件看起来像:
$link = mysql_connect('localhost', 'user', '123456');
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('projectdatabase');
if($option == 1) //get all cart items
{
$sql = "select itemid from cart where cartid=".$_COOKIE['cart'].";";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
echo $row['itemid'];
}
}
else if($option == 2)
{
//do something
}
else if($option == 3)
{
//do something
}
else if($option == 4)
{
//do something
}
我的问题:
- 是否有其他方法可以让我得到来自数据库的数据没有 刷新页面?
- 是否有任何潜在的威胁(黑客攻击,服务器利用率, 表现等)在我做这件事的方式吗?我相信黑客可以 淹没我的服务器使用选项= 1, 2,3等
您能否澄清RESTful api如何减少拒绝服务攻击的漏洞,而不是使用HTTP POST或GET?我想问的原因是我已经实现了使用GET或POST的API,我一直在想如何让它们更安全。谢谢! – 2011-12-28 13:40:57
@Manish:他们不知道,你*使用'POST'和'GET'。 REST旨在使您的API不那么模糊(更明确),并防止意想不到的副作用。如何保护您的API取决于您希望保护它*针对*(例如,您想限制访问还是防止泛滥?) – PPvG 2011-12-28 13:47:05
我有使用HSA1实施的访问限制。我想知道洪水。我阅读了一篇有趣的文章,其中提出了(希望我已添加书签)数据,以表明即使是后期更容易获得。 – 2011-12-28 14:12:40