jquery ajax请求强制不正确的编码

时间:2014-08-22 13:33:37

标签: jquery ajax utf-8

如果为我的网址创建ajax请求,我会收到以下内容类型(特殊字符问题):

application/json

但如果我直接在浏览器中打开网址,我会得到(特殊字符显示正常):

application/json;charset=utf-8

确切地说,最后一个是由服务器发送的。

我的网站,调用ajax-request,头部有以下元标记:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

ajax-request:

$.ajax({
    url: 'MY-URL-AS-USED-HERE-AND-IN-THE-BROWSER',
    type: 'GET',
    contentType : 'application/json; charset=UTF-8',
    dataType : 'json',
    async: false,
    success: function(r) {
        console.log(r);
    }
});

编辑:

加载功能似乎有效。但是我想使用ajax:

$('body').append('<div id="test"></div>');
$('#test').load('MY-URL-AS-USED-HERE-AND-IN-THE-BROWSER');

load-function的内容类型与浏览器请求相同:

application/json;charset=utf-8

2 个答案:

答案 0 :(得分:0)

我已经遇到了这个问题,我的解决方案正在改变我的响应(服务器端)。我开始发送我的数据有一个UTF-8缓冲区:

response.end(new Buffer(JSON.stringify(result.rows), 'UTF-8'));

我在后端使用nodeJS。到目前为止,这对我有用......我没有在寻找客户端解决方案。

希望它有所帮助。如果有人知道为什么会这样,也想知道。

答案 1 :(得分:0)

dataType : 'json'

提出了utf-8问题。我从.ajax中删除了它,一切正常。 :)