【问题标题】:Passing variable from Ajax Call into the Success Function将 Ajax 调用中的变量传递给成功函数
【发布时间】:2015-08-17 10:18:35
【问题描述】:

我的代码接受用户输入,将其合并到 AJAX 调用 URL,然后根据他们的输入检索数据。

检索到的数据是 JSON 格式,因此我想使用用户的原始输入访问该 JSON 对象的某个部分。

例如:

用户输入:example_name

AJAX 网址:www.something.com/api/example_name?api_key=12345

返回对象时:

我想访问:Object.example_name.id

我在将原始 AJAX 调用中的变量“example_name”传递给成功函数时遇到了困难。

这是我的代码:

function getSummonerId(n) {
    console.log("check function...");
    $.ajax({
        dataType: "json",
        type: 'GET',
        url: 'https://url_here/' + n + '?api_key=12345',
        success: function (json, n) {
            console.log(json);
            console.log(n); //this logs "success"
            summonerId = json[n].id;
            console.log(summonerId);

            getScore(summonerId); //send to another function
        }

    });
}

我遇到了这样的错误:

TypeError: json[n] is undefined

还有其他线程在问这个问题,但找不到将原始调用中的“n”传递给成功函数的任何地方。

谢谢!

【问题讨论】:

  • 我刚刚看了一下jQuery成功函数文档,它给出了以下作为成功函数:
  • success 类型: Function( 任何数据, String textStatus, jqXHR jqXHR ) 请求成功时调用的函数。该函数传递三个参数: 从服务器返回的数据,根据 dataType 参数或 dataFilter 回调函数(如果指定)进行格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象。从 jQuery 1.5 开始,success 设置可以接受一个函数数组。每个函数都会被依次调用。这是一个 Ajax 事件。
  • 您是否尝试过使用 .done() 回调(我认为 .success 即将被弃用)。类似 $.ajax({..}).done(function(data){...})

标签: jquery ajax json


【解决方案1】:

我结束了向我的函数添加一个名为fName 的变量,并将其设置为等于传递给它的“n”。

然后我使用json[fName].id 来访问该值。

【讨论】:

  • 你能发布你使用的完整代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多