我有一个功能
var url = "MyAvailability.aspx?mode=get";
$.get(url,
function(data) {
alert(data);
});
返回Json字符串表示
events: [{'id': 1,'start': new Date(year, month, day, 12),'end': new Date(year, month, day, 13, 30),'title': 'Lunch with Mike'},{'id': 2,'start': new Date(year, month, day, 14),'end': new Date(year, month, day, 14, 45),'title': 'Dev Meeting'},{'id': 3,'start': new Date(year, month, day + 1, 17),'end': new Date(year, month, day + 1, 17, 45),'title': 'Hair cut'},{'id': 4,'start': new Date(year, month, day - 1, 8),'end': new Date(year, month, day - 1, 9, 30),'title': 'Team breakfast'},{'id': 5,'start': new Date(year, month, day + 1, 14),'end': new Date(year, month, day + 1, 15),'title': 'Product showcase'},{'id': 6,'start': new Date(year, month, day, 10),'end': new Date(year, month, day, 11),'title': 'I'm read-only',readOnly: true'}]';
If i do alert(data);
它有效,但如果我试图将数据分配给变量,则失败。
我的目标是从函数返回类似
return {
events: [
{
"id": 1,
"start": new Date(year, month, day, 12),
"end": new Date(year, month, day, 13, 30),
"title": "Lunch with Mike"
},
{
"id": 2,
"start": new Date(year, month, day, 14),
"end": new Date(year, month, day, 14, 45),
"title": "Dev Meeting"
},
{
"id": 3,
"start": new Date(year, month, day + 1, 17),
"end": new Date(year, month, day + 1, 17, 45),
"title": "Hair cut"
},
{
"id": 4,
"start": new Date(year, month, day - 1, 8),
"end": new Date(year, month, day - 1, 9, 30),
"title": "Team breakfast"
},
{
"id": 5,
"start": new Date(year, month, day + 1, 14),
"end": new Date(year, month, day + 1, 15),
"title": "Product showcase"
},
{
"id": 6,
"start": new Date(year, month, day, 10),
"end": new Date(year, month, day, 11),
"title": "I'm read-only",
readOnly: true
}
]
};
但我无法
如果我确实返回数据不起作用
你能不能帮助我,我正在疯狂这个
答案 0 :(得分:3)
您似乎错过了.get调用中数据格式的规范。 请尝试这个:
$.get(url,
function(data) {
alert(data);
},"json");
或考虑使用jquery中的.getJSON
方法
答案 1 :(得分:1)
你的问题不太清楚,只是说“失败”或“它不起作用”并没有多大帮助。但是,如果您要向浏览器返回json响应,则应该:
使用$.getJSON
方法代替$.get
,或
将$.get
请求的数据类型设置为“json”。
如果您不执行上述任何一项操作,则需要通过执行以下操作手动将返回的字符串解析为对象:
var myObj = eval('(' + data + ')');
其中data变量包含返回的json字符串。
答案 2 :(得分:0)
问题不在于return
语句,实际上是因为它所在的函数被称为异步。因此,如果您将$.get()
调用放在函数中,那么该函数将在之前返回调用回调函数。
不要使用返回值,而是让函数本身完成工作(或调用其他函数来完成工作)。