天天看點

Ajax中async的設定問題

問題描述:Ajax傳值狀态是200正确的,但就是擷取不到success後的傳回值data,最後發現隻有alert()一下才可以正确擷取值。

解決方法:把Ajax裡面的async設定為false問題解決

分析原因:當async設定為true時,是異步傳輸,即一js一邊傳向Server,一邊緊接着就執行下面的傳回值,那如果Server那邊還沒有處理好,這邊就當然不會有輸出值了,加上alert後會有是因為Server那邊已處理好,設定成false就是讓它執行完成後再執行html端的。

//-----------------------------------前台頁面--------------------------------------------------

<html>

<head>

<title></title>

<script type="text/javascript" src="./js/jquery.js"></script>

<script>

    function fun(){

        var username = $("input[name=username]").val();

        $.ajax({

            type: "GET",

            async:false,//預設是true

            url: "php.php",

            data: { username:username, Name: "Jquery" },

            success:function(data, st){

                alert(data);

            }

          })

         // alert(username); 如果async設定為true,在這個地方必須要alert一下才可以擷取success裡的data值

    }

</script>

</head>

<body>

<div align="center">

<form action="" name="frm">

聯系人:<input type="text" name="username" value="" /><br>

電  話: <input type="text" name="phone" id="idPhone" /><br>

    <button onclick="fun();">送出</button><br>

    <div><span id="number">350</span>人報名</div>

</form>

</div>

</body>

</html>

//-------------------------------------------伺服器頁面---------------------------------------------------

<?php

include 'conn.php';

if(!empty($_GET['id']))

{

     echo $_GET['username'];

}

PHP網站開發求職QQ群 368848856