jQuery Ajax调用 - 响应StatusDescription Charset

时间:2014-11-03 18:52:55

标签: jquery asp.net-mvc

我开始使用Response.StatusDescription在我的Ajax调用中向用户发出错误消息(参见下面的代码)

问题在于编码。响应消息带有重音字母的问题(参见下面的AJAX调用)。

它在我的电脑上工作正常,但一旦发布到服务器,我就开始遇到这个问题了。

我做错了吗?

public JsonResult MyAction(int variable)
{
    if (variable > 0)
    {
        //Do Something
    }
    else
    {
        Response.StatusCode = (int)HttpStatusCode.Unused;
        Response.StatusDescription = "Dados Inválidos"; //notice the 'á' on the message
    }
    return Json(true);
}

我的Ajax电话:

$.ajax({
    type: 'POST',
    traditional: true,
    url: '/testUrl/MyAction',
    dataType: "JSON",
    data: {
        variable: myVal
    }
})
    .done(function()
    {
        //Do something
    })
    .fail(function(error, textStatus, errorThrown)
    {
        var msg = error.statusText; //The message received is: "Dados InvÂilidos"
        if (error.status !== 306) //HttpStatusCode.Unused
            msg = 'Error occurred';

        this.dialogShowError(msg);
    });

更新: 这是我收到的响应标题:

enter image description here

问题似乎只发生在Ajax请求上。我已经对Regular ActionResult进行了测试,并且StatusDescription设置得很好。

1 个答案:

答案 0 :(得分:0)

尝试

Response.Charset = "utf-8";

我的预感是HTTP响应标头有错误的字符集。