我对JSON Web服务和AJAX功能有疑问。我在下面声明了一个JavaScript函数。
function setJsonSer(){
formData = {
'Email': 'clientlink@russell.com',
'Password': 'russell1234',
'URL': getVaria()
};
$.ajax({
url: "/APIWebService.asmx/AnalyticsDataShowWithPost",
type: 'POST',
data: formData,
complete: function(data) {
alert("This is Set JSON In "+JSON.stringify(data));
}
});
$.ajax({
url: "/APIWebService.asmx/AnalyticsDataShowWithPost",
type: 'GET',
data: formData,
complete: function(data) {
alert("This is Get JSON Out "+JSON.stringify(data));
}
});
}
正如您所看到的,我已提醒JSON.stingify(data)
语句,它给了我预期的结果。
现在我想从该特定函数SetJsonSer()中获取该JSON响应,以分配给驻留在SetJsonSer()函数旁边的可变。
我已经尝试了return JSON.stringify(data))
和JSON.stringify(数据)语句,但是他们没有将结果从SetJsonSer()函数中删除。
输出必须从如下变量中获取。
function Load(){
// --------------------------------------------- -
setJsonSer();
var labels = new Array();
var values = new Array();
var catogories = new Array();
var arrayOfArray = new Array();
var rowData = "return value of JSON.stringify(data)";
此变量将用作使用HighCharts绘制图表的查询。那么有人能给我一个线索如何获得SetJsonSer()函数的结果吗?
谢谢和问候, Chiranthaka
答案 0 :(得分:2)
你对AJAX的异步特性感到厌倦。
AJAX事件正在被触发,但它不会导致代码执行暂停,因此,您需要实现回调。
这段代码并不是特别好,但它可以让您了解如何处理数据。
function setJSONSer() {
formData = {
'Email': 'clientlink@russell.com',
'Password': 'russell1234',
'URL': getVaria()
};
$.ajax({
url: "/APIWebService.asmx/AnalyticsDataShowWithPost",
type: 'POST',
data: formData,
complete: function(data) {
console.log("Successfullly set JSON!");
getJSONSer();
}
});
}
function getJSONSer()
{
$.ajax({
url: "/APIWebService.asmx/AnalyticsDataShowWithPost",
type: 'GET',
complete: function(data) {
//alert("This is Get JSON Out "+JSON.stringify(data));#
Load(data);
}
});
}
function BeginLoad()
{
setJSONSer();
}
function Load(data)
{
setJsonSer();
var labels = new Array();
var values = new Array();
var catogories = new Array();
var arrayOfArray = new Array();
var rowData = "return value of JSON.stringify(data)";
}
BeginLoad();