我开始使用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);
});
更新: 这是我收到的响应标题:
问题似乎只发生在Ajax请求上。我已经对Regular ActionResult进行了测试,并且StatusDescription设置得很好。
答案 0 :(得分:0)
尝试
Response.Charset = "utf-8";
我的预感是HTTP响应标头有错误的字符集。