我编写了像网上其他人一样,但我的WebMethod没有从后操作中击中。我相信我的代码很好,但我会发布我的代码以防万一。 我在WebMethod中放置了一个断点,这是我知道它不被调用的方式。 任何帮助,将不胜感激。AJAX POST到WEB方法不工作我
AXAJ
var div = document.getElementById(this.id);
var divid = div.getElementsByClassName("portlet-id");
varSQL="UPDATE [ToDoTrack] SET [Status] = '" + this.id + "' WHERE [ID] = '" + divid[0].innerHTML + "'";
var item = {};
item.status = this.id;
item.id = divid[0].innerHTML;
var Data = '{varSQL: ' + varSQL + ' }'
$.ajax({
type: "POST",
url: "ToDoTrack.aspx/UpdateDB",
data: Data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response)
{
window.location.reload();
},
error: function (XMLHttpRequest, textStatus, errorThrown)
{
alert("Status: " + textStatus);
alert("Error: " + errorThrown);
}
});
代码隐藏
[WebMethod]
[ScriptMethod]
public static void UpdateDB(string varSQL)
{
string connStr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(varSQL))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
从移动设备发布原谅错误和错误的语法。 –
谢谢EDC,但即使SQL的字符串已经通过,我也希望WebMethod至少可以被调用,但事实并非如此。 – Dennis
关于安全性,我认为这可能是一个坏主意,但我只是想测试,看看数据库是否得到更新 – Dennis