AJAX:通过删除' dataType解决错误200 OK:' json''

时间:2017-05-23 22:09:17

标签: json ajax types

参考this question 以及@Musa提供的答案。

我删除了' dataType:' json'成功删除了错误消息。根据{{​​3}},这是因为我的返回JSON格式不正确。

然而,我在另一个页面中有完全相同的东西,并且它工作得很好而没有删除' dataType:' json''。唯一的区别是一个在按钮内,一个由画布绘制事件触发。

这甚至有用吗?

案例1

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;
    }
}

案例2

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));
    }

0 个答案:

没有答案