JQuery Ajax 填补了 JavaScript 变量问题
JQuery Ajax fills javascript variable issue
我正在尝试使用 JQuery Ajax 以这种格式填充变量,但由于所有括号,我无法从后端返回该格式的数据
elements = [{
key: 1,
label: "Food",
open: false,
children: [
{ key: 211, label: "Burger" }
]
}];
这是我当前使用
的代码,它不起作用菜单.aspx:
$.ajax({
type: "POST",
url: "menu.aspx/get_menu",
data: {},
contentType: "application/json",
dataType: "json",
success: function (msg) {
$("#test").html(msg.d);
}
});
后端:
[WebMethod(EnableSession = false)]
public static string get_menu()
{
return "hello world";
}
在我的示例中,您的后端代码应该看起来更像这样(WebService.cs,这是WebService.asmx的CodeBehind ):
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
public class JsonResult
{
public string key, label, open;
public List<Children> children;
}
public class Children
{
public string key, label;
}
[WebMethod]
public List<JsonResult> test()
{
List<Children> child = new List<Children>();
child.Add(new Children
{
key = "211",
label = "Burger"
});
List<JsonResult> result = new List<JsonResult>();
result.Add(new JsonResult
{
key = "1",
label = "Food",
open = "false",
children = child
});
return result;
}
}
此代码将创建的列表作为 JSON 发送 - 当 jQuery 收到它时,它看起来像这样:
{"d":[
{
"__type":"WebService+JsonResult",
"key":"1",
"label":"Food",
"open":"false",
"children":[
{
"key":"211",
"label":"Burger"
}
]
}
]}
然后,jQuery AJAX 非常简单,如下所示:
$.ajax({
type: "POST",
url: "/WebService.asmx/test",
contentType: "application/json",
success: function (response) {
var jsonResponse = response.d;
}
});
现在,您可以将每个元素作为本机 JavaScript 对象进行访问,就像我在将每个对象分配给变量时的 success
回调中显示的那样。 现在,您可以对数据执行任何操作。
success: function (response) {
var jsonResponse = response.d;
for (var i = 0; i < jsonResponse.length; i++) {
var key = jsonResponse[i].key;
var label = jsonResponse[i].label;
var open = jsonResponse[i].open;
var children = jsonResponse[i].children;
for (var a = 0; a < children.length; a++) {
var key = children[a].key;
var label = children[a].label;
}
}
}
这是100%测试并正常工作。 如果还有什么我可以帮你的,请告诉我。
相关文章:
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量