无法从ajax请求中获取值,以便在成功之外保存在变量中

时间:2016-08-09 20:38:47

标签: javascript ajax

我再一次将我的头撞在墙上,试图将这部分返回的数据从ajax拉到函数外的变量。

当我返回该值时,当undefined内部显示正确的值时,它总是出现alert()

function getItemInfo(itemHashPass) {

    $.ajax({
        url: 'index.php//Welcome/getItem', //This is the current doc
        type: "POST",       
        data: 'iHash='+itemHashPass,
        dataType: "json",
        async: false,
        success: function(data){

          return data.Response.data.inventoryItem.itemName;

        }
    });  

}

我也试过

function getItemInfo(itemHashPass) {
  var tmp = null;
  $.ajax({
    url: 'index.php//Welcome/getItem', //This is the current doc
    type: "POST",       
    data: 'iHash='+itemHashPass,
    dataType: "json",
    async: false,
    success: function(data){

      tmp = data.Response.data.inventoryItem.itemName;

    }
 });  
 return tmp;
}

1 个答案:

答案 0 :(得分:0)

就像Jonathan所说,您应该在回调中编写业务逻辑,或者您可以尝试延迟语法。在这种情况下,它看起来像

   function yourBusinnesLogicFunction() {
       ...
       getItemInfo("password_hash_value").done(
          function(data){
              alert(data.Response.data.inventoryItem.itemName);
          }
       )
    }

    function getItemInfo(itemHashPass) {
      var tmp = null;
      return $.ajax({
        url: 'index.php//Welcome/getItem', //This is the current doc
        type: "POST",       
        data: 'iHash='+itemHashPass,
        dataType: "json",
        async: false,
       })
     }