目前我正在使用asp.net和c#的网站上工作。我使用web service
从数据库获取数据,我得到了正确的数据而没有问题。但是,一旦我通过ajax
调用获取数据,我需要将它分配给一个全局变量,我后来用它创建一个树形图。这就是我的问题所在,我已尝试分配JSON
对象,但我似乎无法让它发挥作用。我一直收到错误
TypeError:treeData未定义
请有人指导我。以下是相关代码
Ajax Call
$(function () {
$.ajax({
type: "POST",
url: "MyService.asmx/SomeFunction",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successHandler
});
});
SuccessHandler
function successHandler(data) {
var a = JSON.parse(data.d);
var b = [JSON.stringify(a)];
}
var treeData = successHandler[0]; //This part keeps giving me error
提前感谢您的所有帮助和支持。
答案 0 :(得分:2)
当它是一个函数时,你试图以successHandler
作为数组进行访问。你不能那样使用它。相反,将[JSON.stringify(a)]
分配给全局变量,并在需要数据时访问该变量,如下所示:
var dataFromAjax;
var treeData;
function successHandler(data) {
var a = JSON.parse(data.d);
dataFromAjax = [JSON.stringify(a)];
setTreeData();
}
function setTreeData() { //this function can be in the seperate script tag
treeData = dataFromAjax[0];
}
答案 1 :(得分:0)
在这种情况下,您需要从函数返回对象并像successHandler()[0];
function successHandler(data) {
var a = JSON.parse('[{"a":1, "b":2}]');
return a; // you need to return the data from here.
}
var treeData = successHandler()[0]; //This part keeps giving me error
console.log(treeData)