ajax - 状态码为200的请求错误

时间:2015-10-08 10:00:36

标签: ajax asp.net-mvc-5

从客户端,我想将一些数据发送到服务器并接收一些<div>标记,这些标记响应View(另一个控制器)。

我的ajax代码如下所示:

var sortTopic = function () {
    var $list = [],
        $address = '',
        $formData = new FormData();

    /* do something here to set value to $list and $address */

    $formData.append('Category', $list);
    $formData.append('Address', $address);
    $formData.append('Tags', '[KM]');
    $formData.append('Skip', 0);

    $.ajax({
        url: '/Topic/Sort',
        type: 'POST',
        data: $formData,
        dataType: 'json',
        contentType: false,
        processData: false,
        success: function (data) {
            if (!data.success) {
                $('.jumbotron').html(data.ex);
            } else {
                $('.jumbotron').html(data);
            }
        },
        error: function (xhr) {
            alert(xhr.status); //xhr.status: 200
        }
    });
};

TopicController中,行动Sort是:

[AllowAnonymous]
[HttpPost]
public ActionResult Sort(SortTopicViewModel model)
{
    try
    {
        if (model.IsValidSortTopicModel())
        {
            return PartialView("../Home/_Timeline", new TopicMaster().Sort(model));
        }
        return Json(new { success = false, ex = "Invalid model." });
    }
    catch (Exception e) { return Json(new { success = false, ex = e.Message }); }
}

我确定model有效且方法new TopicMaster().Sort(model)工作正常(因为我已经设置了断点来查看返回数据)。部分视图_TimelineHomeController的部分视图。

我的问题是:我不明白为什么我在ajax中获得状态代码为200的error

error: function (xhr) { alert(xhr.status); //xhr.status: 200 }

你能解释一下吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

正如你告诉你收到的<div>回复时不是json而你在ajax中提到dataType:"json"只是删除它。这将解决您的问题。如果没有得到你在ajax中提到的有效响应,就会出现错误200。

对于mor信息,您可以阅读documentation