AJAX成功响应触发错误回调

时间:2016-10-18 10:28:27

标签: c# json ajax razor

我昨天花了很多时间在SO上寻找适合我的东西我还没找到合适的东西。 我从一个剃刀视图的ajax调用的响应有一个相当普遍的问题。 出于测试目的,我强迫成功响应作为Json响应返回:

控制器

    public ActionResult Save(int order){
      . . .
      var response = new {Order = order, ResultCode = 0, ResultMessage = "Positive!", Success = true };
      var json = Json(response, JsonRequestBehavior.AllowGet);
      return json;

Ajax调用如下:

    $(document).ready(function () {
        $("#save_ahref").click(
            function () {
                $.ajax({
                    method: "GET",
                    url: "/MyController/Save",
                    dataType: "application/json",
                    data: { order: $("#hid_order").val() },
                    success: onSuccess,
                    error: onError
                });
            }
        );
    });

    function onSuccess(response) {
        //never reached
    }

    function onError(response) {
        var res = JSON.parse(response.responseText);
       //do  other stuff
    }

我对Chrome控制台的回复看起来是正确的:

    Object {readyState: 4, responseText: "{"Order":12345678,"Success":true,"ResultCode":0,"ResultMessage":"Positive!"}", status: 200, statusText: "OK"}

以及JSON.parse(response.responseText)的结果(jsonlint也这样说)。

虽然我按照SO和其他论坛中提到的提示(他们基本上都说使用application / json而不是json作为dataType,并尝试正确解析对象)我仍然得到错误事件被触发,我可以'似乎得到了原因。

我很感激任何想法!

0 个答案:

没有答案