javascript - 将 ajax 结果输入变量的函数

标签 javascript jquery json ajax function

我的这段代码有问题。 有时候是这样的: 只需从 console.log 启动代码,如果按下更新按钮功能就可以工作,我会得到 null。

为什么会发生这种情况? 我该如何修复?

var urljson = "data_json.php";
var data = null;
var jqXHR = $.ajax
({
  type: "GET",
  url: urljson,
  dataType: 'json',
  success: successHandler

});
function successHandler(result) {
     data = result; 
 }

function update(){
var jqXHR = $.ajax
({
  type: "GET",
  url: urljson,
  dataType: 'json',
  success: successHandler

});
function successHandler(result) {
     data = result; 
 }
}

$(document).ready(function(){   

 console.log(data) //// null

});


document.getElementById('update').addEventListener('click', function() {

update();

console.log(data) //// Array [ Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, other 3213… ]

});

最佳答案

$.ajax() 异步返回结果。使用 success 处理程序或链接到 $.ajax().then() 来处理从请求返回的响应。

function update() {
  var jqXHR = $.ajax({
    type: "GET",
    url: urljson,
    dataType: "json",
    success: successHandler    
  });

  function successHandler(result) {
    data = result;
    // do stuff with `data` here
    console.log(data);
  }
}

$(document).ready(update);

jsfiddle https://jsfiddle.net/89jkzzyk/

关于javascript - 将 ajax 结果输入变量的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398786/

相关文章:

javascript - 在 JQuery 中将 EditorFor 值设置为 DisplayFor 值

javascript - 如果值为 '{{user->experience}}' 在标签 laravel 或 javascript 上添加类 'active'

javascript - 通过 Ajax 将 jQuery 对象发送到 PHP

javascript - 拖放时更改隐藏名称

javascript - 悬停固定的 div 可防止在 div 内滚动

javascript - 获取html对象中的json数据,对象来自ajax获取响应

javascript - 如何使用 javascript 调试换行问题

javascript - 如何在 d3js 中查找关联日期(x 轴)与最大值(y 轴)

xml - 为 iOS 开发 RSS 阅读器?

javascript - JavaScript 中的 "Falsy or empty": How to treat {} and [] as false