【发布时间】: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){...})