4

我遇到了 jquery ajax 请求的情况。

<script type="text/javascript">
$(document).ready(function() {
    $.ajax({
        type: "POST",
        async: false,
        cache: false, 
        url: "/ajax/script.php",
        data: { display: 'user', user_id: '1'}
    }).done(function( msg ) {
        if (msg !== "") {
            alert(msg);
        }
    });
});
</script>

使用 Chrome 和 Firefox 我已经通过脚本生成了 html 代码/ajax/script.php 使用 IE8(我没有尝试使用 6、7 和 9+)我有Undefined

有人知道如何解决吗?

编辑:我正在使用 jquery 1.7.2

4

3 回答 3

4

返回的 MIMETypeapplication/json; charset=utf8在 IE8 中对我造成了同样的行为。更改它以application/json;使 IE8 神奇地开始运行。

于 2013-07-12T16:35:16.163 回答
1

好吧,因为你没有定义“味精”,所以它是未定义的。done() 需要一个函数、多个函数或什么都没有作为参数。

如果你想从你的 ajax 调用中回调,你应该使用

    $.ajax({
        type: "POST",
        async: false,
        cache: false, 
        dataType: 'text',
        url: "/ajax/script.php",
        data: { display: 'user', user_id: '1'},
        success: function(data) {
            // do something
        }

    });

编辑:如果有帮助,我正在使用 jquery 1.7.2

于 2012-08-27T10:14:05.037 回答
1

我解决了更改代码的问题:

response.setCharacterEncoding("UTF8");

至:

response.setCharacterEncoding("UTF-8");
于 2014-01-04T18:34:29.217 回答