外部システムにPOSTで値を取得し、それを変数にいれて動くようプログラミングしたいんですが、これが上手く代入できなかったのです。

 

let getData;
$.ajax({
  type: 'POST',
  url: 'hogehoge.php',
  data:{
    'キー': 'postするデータ'
  },
  dataType : "json",
    success: function(data) {
    console.log(data); // log1
    getData = data;
  },
  error: function() {
    console.log("取得できず");
  }
});
console.log(getData); // log2

 

結果は

 

log1 → データ返ってきた
log2 → undefined

 

代入できていない・・・

ajaxの中では代入できているのに、それを過ぎると何も入ってないことになっていました。

調べてみると、ちゃんとできるようで、ひと手間加える必要があるそう。

 

let getData;
$.ajax({
  type: 'POST',
  url: 'hogehoge.php',
  async : false, // ←これを追加
  data:{
    'キー': 'postするデータ'
  },
  dataType : "json",
    success: function(data) {
    console.log(data); // log1
    getData = data;
  },
  error: function() {
    console.log("取得できず");
  }
});
console.log(getData); // log2

 

するとlog2にもデータが代入されていました。

ajaxは今後も必要となりそうなので、このひと手間は忘れないようにしたい・・・