参考this question 以及@Musa提供的答案。
我删除了' dataType:' json'成功删除了错误消息。根据{{3}},这是因为我的返回JSON格式不正确。
然而,我在另一个页面中有完全相同的东西,并且它工作得很好而没有删除' dataType:' json''。唯一的区别是一个在按钮内,一个由画布绘制事件触发。
这甚至有用吗?
JQuery:3.2.1
这是由draw()调用的。我需要发表评论' dataType:' json''它的工作原理。
function StoreData() {
event.preventDefault();
var data = {
begin_x: begin_x,
begin_y: begin_y,
end_x: end_x,
end_y: end_y
};
$.ajax({
url: "StoreLine",
type: "POST",
//dataType: "json",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: function (result) {
console.log(result.d);
console.log("success in storeData.");
},
error: function (exception) {
console.log("error in storeData.");
alert(exception);
}
});
return false;
}
这是前一个代码段的DefaultController类。
public class DefaultController : Controller
{
String connectionString = "Server=localhost\\SQLEXPRESS;Database=master;Trusted_Connection=True;";
// GET: Default
public ActionResult Index()
{
return View();
}
private bool Insert(String connectionString, float begin_x, float begin_y, float end_x, float end_y)
{
var result = false;
String commandText = "INSERT INTO dbo.Lines (Chart_Id, begin_x, begin_y, end_x, end_y) VALUES(1, @beginX, @beginY, @endX, @endY)";
List<SqlParameter> prm = new List<SqlParameter>()
{
new SqlParameter("@beginX", SqlDbType.Float) {Value = begin_x},
new SqlParameter("@beginY", SqlDbType.Float) {Value = begin_y},
new SqlParameter("@endX", SqlDbType.Float) {Value = end_x},
new SqlParameter("@endY", SqlDbType.Float) {Value = end_y}
};
Int32 rows = SqlHelper.ExecuteNonQuery(connectionString, commandText, CommandType.Text, prm.ToArray());
if (rows > 0) result = true;
return result;
}
[WebMethod]
public string StoreLine(float begin_x, float begin_y, float end_x, float end_y)
{
if (Insert(connectionString, begin_x, begin_y, end_x, end_y)) return true;
return false;
}
}
JQuery:1.10.2
这是在不删除&#39; dataType的情况下有效的功能:&#39; json&#39;&#39;
$('#submit').click(function(){
$.ajax({
type: "POST",
url: "/calledmethodaspxpage.aspx/calledmethod",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({ tripData: data }),
beforeSend: function () {
//do something before send
},
success: function (result) {
if (result.d) {
//do something
}
else {
alert("error");
}
},
error: function (error) {
//handle error
}
});
}
这是随附的代码。
[WebMethod]
public static bool CalledMethod(TripData tripData)
{
//some procedures that work
return (result != null && !string.IsNullOrEmpty(result.id));
}