【发布时间】:2011-03-21 18:12:04
【问题描述】:
我想在 javascript 中调用 Web 服务方法。 (asp.net 3.5)
我已经用 firebug 追踪了结果。 结果如下:
{"d":"[{\"TI\":\"www\"},{\"TI\":\"www1\"}]"}
我觉得正确的结果应该是这样的
{"d":[{\"TI\":\"www\"},{\"TI\":\"www1\"}]}
括号前后的引号是什么?
// 编辑: 在网络服务中:
public class Test
{
public Test(string t){T1 = t;}
public string T1 { set; get; }
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true, XmlSerializeString = false)]
public string Load(string e)
{
List<Test> post = new List<Test> { new Test("www"), new Test("www1") };
return JsonConvert.SerializeObject(post);
}
在js文件中:
var store = new Ext.data.JsonStore({
proxy: new Ext.data.HttpProxy({
url: '/core/webservice/service.asmx/Load',
method: 'GET',
headers: { 'Content-type': 'application/json' }
}),
root: 'd',
id: 'Id',
fields: ['TI']
});
store.load({ params: { e: ''} });
return;
谢谢。
米尔
【问题讨论】:
-
我测试了 JSONConvert.Serialize,它运行良好。您可以从代理中删除此行并重试吗: headers: { 'Content-type': 'application/json' }
标签: javascript asp.net json web-services asmx