在服务器端状态有改变,或者是修改更新某些数据时多用POST请求。接触到新的项目时长需要更新的时候忽然发现post有多么的重要,GET和POST两种方法都是将数据送到服务器,但是GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。特别是在url地址栏上直接加上要传的值的话,专于攻击你网站的人看到以后,直接看到你数据库的数据类型,存储格式,给了他们探测你数据的机会,我上学的时候,宿舍有个朋友专门研究漏洞的,经常我们做的网站被他连数据库一起扒拉下来了,搞的我们好崇拜哦。呵呵!
使用jQuery的$.post方法可以以POST形式向服务器发起AJAX请求。$.post方法是jQuery的实用工具方法。
$.post方法语法
$.post(url,parameters,callback) | |
参数 | |
url | (字符串)服务器端资源地址。 |
parameter | (对象)需要传递到服务器端的参数。 参数形式为“键/值”。 |
callback | (函数)在请求完成时被调用。该函数参数依次为响应体和状态。 |
<
script
type="text/javascript">
//前台程序
var bill_guid = $("#bill_guid").val();
var phone = $("#phone").val();
if (bill_guid == "" || phone == "") {
$("#showalert2").show();
return false;
}
else {
$.post("/home/RobOrder", { phone: phone, bill_guid: bill_guid }, function (data) {
if (data == "1") {
//alert("抢单成功!请查看抢单记录进行回收处理。");
$("#showconfirm").hide();
$("#showdivwrap").show();
}
else {
$("#showalert1").show();
}
});
}
}
//后台程序
[HttpPost]
public string RobOrder(FormCollection form)//处理抢单
{
string backstr = string.Empty;
string phone = form["phone"] + "";
string bill_guid = form["bill_guid"] + "";
string sql_RobOrder = @"if exists (select 1 from order_bill with(xlock) where bill_guid={1} and RobOrder_Mark=0)
begin
if exists (select 1 site_guid from pub_site where phone={0})
begin
update order_bill set RecyclePerson_Guid=(select top 1 site_guid from pub_site where phone={0}),RobOrder_Mark=1
where bill_guid={1} and RobOrder_Mark=0
end
end";
int i = 0;
using (DBContext context = new DBContext())
{
i = context.Execute(sql_RobOrder, phone, bill_guid);
}
if (i > 0)
{
backstr = "1";
}
else
{
backstr = "0";
}
return backstr;
}
//DBcontext中的方法
public int Execute(string sql, params object[] args)
{
int ret = 0;
using (DbCommand cmd = PrepareCommand(sql, args))
{
ret = cmd.ExecuteNonQuery();
}
return ret;
}
好了,今天的研究就先到这里,我要去熟悉熟悉数据库了,忽然发现这个数据库语句写的我,,竟然不知道数据库里面if的使用