AJAX帖子没有在jQuery 1.9.1中返回xml数据

时间:2014-02-17 04:38:43

标签: javascript jquery ajax

在将CTF记分板从旧版本的jQuery迁移到版本2.0.2时,我注意到jQuery post函数似乎无法检索xml数据。代码在1.8.3中工作正常,但在1.9.1中无法运行。无论如何不使用jQuery migrate来解决这个问题吗?

form.submit
(
    function()
    {
        $.post
        (
            'ajax.php?m=login',
            {
                'username': $( '#username' ).attr( 'value' ),
                'password': $( '#password' ).attr( 'value' ),
                'token': token
            },
            function( xml )
            {
                switch( $( xml ).find( 'code' ).text() )
                {
                    case '1':
                        login();
                        clear_mainframe( false );
                        break;

                    case '2':
                        toggle_color( $( '#header' ), 'orange' );
                        break;

                    case '3':
                        toggle_color( $( '#header' ), 'red' );
                        break;
                }
            }
        );

        return false;
    }
);

2 个答案:

答案 0 :(得分:0)

您可以通过第4个参数$.posthttps://api.jquery.com/jQuery.post/)告诉jQuery返回什么类型的数据。 jQuery使用的启发式方法可能会发生变化。

您还应该在浏览器(开发人员工具栏)中检查从服务器返回的原始响应。这将分解差异是否是jQuery的问题以及它如何解析响应,或者您的服务器是否甚至没有返回XML开始。

答案 1 :(得分:0)

我终于发现是弄乱了剧本。较新版本中的.attr()仅检索属性。我将它们改为.prop()而且工作正常。