【问题标题】:Ajax call POST method, object update with data in success handlerAjax 调用 POST 方法,使用成功处理程序中的数据更新对象
【发布时间】:2017-11-01 03:52:38
【问题描述】:

我想用成功处理程序中的数据更新主对象,并且在进行下一次 ajax 调用时,我想用更新的对象发布。

var getValue = function() {
  var mainObject = {
    "name": "Tom",
    "age": 26
  }
  return mainObject;
}

var setValue = {
  "detailsMethod": {
    var sendObject = getValue();
    $.ajax({
      url: 'https://....',
      data: sendObject
    })
    .success(function(data) {
        var location = data.name
        var sendValue = getValue();
        sendValue.location = location; // when the next Ajax call is being made add location value to mainObject
    })
    .error(function() {
      //Error
    })
  }
}

setValue.detailsMethod();

【问题讨论】:

  • 这段代码有很多问题......该代码没有进行 Ajax 调用,它正在引发错误。你有一个无效的对象,你把它当作一个函数来对待。当你通过定义对象让它运行时,你返回一个对象并在其上设置 location 属性,但这不会做任何事情。
  • 如何从成功中向 mainObject 添加值并在下一次 ajax 调用期间发布 updatedObject..
  • 每次调用 getValue() 时都会创建并返回不同的对象。
  • 您需要使用一个全局变量来保存一个从一次调用到下一次调用的对象。
  • 分配给window.onload的值需要是一个函数。您立即调用该函数,而不是分配对该函数的引用。最后去掉()

标签: javascript jquery ajax promise


【解决方案1】:

这个版本应该可以正常工作,但是我不确定这是否是你想要的。

var mainObject = {
  "name": "Tom",
  "age": 26
};

function updateValue() {
  $.ajax({
      url: 'https://....',
      data: mainObject
    })
    .success(function(data) {
      mainObject.name = data.name;
    })
    .error(function() {
      //Error
    })
}

window.onload = updateValue;

在加载时,会调用 updateValue 并发出 ajax 请求。当响应到达时,mainObject 会使用响应数据进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多