1. 程式人生 > >ajax post 賦值無效

ajax post 賦值無效

昨天做程式的時候發現在ajax post的時候賦值無效,si_id在post的回撥函式裡面是有值的,但是在post外面卻又取不到值?
        var si_id
        $.post("/sysbrand/check_name/",{name:name,type:type},function(data){
            si_id=data;
        });

查閱資料後發現是ajax非同步提交的問題,ajax預設是非同步提交的,js會從上至下的去執行,不會等ajax post 回撥成功後在執行下面的程式碼。實際上post下面的程式碼比回撥函式裡面的程式碼先執行,所以post外面才會取不到值。我們只需要將其設定為同步就可以了。方法如下:

var html = $.ajax({
  url: "some.php",
  async: false
}).responseText;

或者在全域性設定Ajax屬性
$.ajaxSetup({
  async: false
  });

再用post,get就是同步的了