我用jQuery的ajax对象,怎么没有responseText属性呢?

我这个ajax对象,怎么responseText属性为空呢?
我打印 myajax 的时候,看到 responseText 有值.

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script src="/jquery.min.js"></script>

    <title>02.ajax传值到服务器,ajax内接收值</title>

    <script>
    $(function(){    /***加载事件的开始,这行就不别改了!**/
        myajax = $.ajax
        (
            {
                data:'name=yb&sex=nan',
                type : 'POST',      //默认是GET
                url : 'http://localhost/YB-JavaScript/jQueryajax/03.php',
            }
        );
        console.log( myajax );
        $("div").html(myajax.responseText);
        alert( myajax.responseText);
    })    /***加载事件的结束,这行就不别改了!**/
    </script>
</head>

<body>
    <div></div>
<body>

console.log 的时候,明明有:
图片描述

阅读 6.5k
3 个回答

因为AJAX 是异步的,你打印responseText 时AJAX 请求还没完成,所以responseText 是空的。
改成:

myajax = $.ajax
(
    {
        data:'name=yb&sex=nan',
        type : 'POST',      //默认是GET
        url : 'http://localhost/YB-JavaScript/jQueryajax/03.php',
    }
).then(function(){
    $("div").html(myajax.responseText);
    alert( myajax.responseText);
});
console.log( myajax );

responseText 是服务器返回结果的意思,您的ajax要用到它,必须等返回结束后(成功或失败),再调用它。
所以应该是在 success 或fail或done 的回调里用。。才有结果。

 <script>
    $(function(){    /***加载事件的开始,这行就不别改了!**/
        myajax = $.ajax
        (
            {
                data:'name=yb&sex=nan',
                type : 'POST',      //默认是GET
                url : 'http://localhost/YB-JavaScript/jQueryajax/03.php',
                success :function(data){
                console.log( data );
                   $("div").html( data.responseText );//***等ajax结束在success里执行代码***
                }
            }
        );  
    })    /***加载事件的结束,这行就不别改了!**/
    </script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题