我在.aspx
文件中有一个AJAX呼叫:
var data = { "schoolID": id };
$.ajax({
type: "POST"
, url: "schools.aspx/DeleteSchool"
, data: JSON.stringify(data)
, contentType: "application/json; charset=utf-8"
, dataType: "json"
, error: function (XMLHttpRequest, textStatus, errorThrown) {
$.alert({
title: "Error deleting school"
, type: "red"
, content: XMLHttpRequest + "||\n" + textStatus + "||\n" + errorThrown
});
});
单击按钮时调用。应该将ID传递给此C#函数:
[WebMethod]
public void DeleteSchool(int schoolID)
{
string query = @"
DELETE
FROM tableName
WHERE id = @schoolID
";
List<SQLParameter> parameters = new List<SQLParameter> {
new SQLParameter("@schoolID", schoolID)
};
SqlConn.doQuery(query, parameters);
}
但是,当我在C#函数中放置一个断点时,它永远不会中断,并且AJAX对象中的错误函数将始终运行。错误看起来像这样:
在Chrome中,它看起来像这样:
响应以HTML形式返回:
当我检查请求的参数时,似乎传递的JSON对象格式正确,因此我不确定在这里出了什么问题或为什么WebMethod
从未被击中。我检查了MDN documentation for the 302 code,但不确定是否与我的问题有关。根据我的研究,看来AJAX期望使用JSON而不是HTML,并且无法解析响应,但是我对原因感到困惑,因为WebMethod
的返回是无效的并且不是反正打。为什么会收到HTML响应,为什么没有调用我的WebMethod
?
答案 0 :(得分:0)
您在ajax调用中的网址必须是
url:“ http://localhost:56302/context/Math/schools.aspx/DeleteSchool”
答案 1 :(得分:0)
事实证明,问题出在我组织处理请求的方式上。