【发布时间】:2011-12-06 19:15:56
【问题描述】:
我需要从 C# Web 服务获取 Json 数据。
我知道有几个基于此的问题,相信我,我已经阅读了很多,但只会让我更加困惑。
这就是我所做的:
在我的网络服务中,我已经包含:[System.Web.Script.Services.ScriptService] 用于类和 [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] 用于方法
我还使用了JavaScriptSerializer() 将我的数据转换为字符串
我正在使用 $.getJSON() 调用此服务
如果我不使用它,我会收到跨域引用错误。
为此,我必须设置 m 服务以获取回调函数名称
所以我在传递 this.Context.Request["callback"] + 序列化的 Json 数据;
但在输出中我把它包裹在
中< string xmlns="http://XYZ...">
标签内的数据是我需要的格式
我还尝试使用:$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"}); 设置内容类型
但还是没有成功。
稍后添加:我接受了 frenchie 的 anwser,因为我知道这是正确的方法,但我仍然无法让它工作......我只是将 web 服务和网站放在同一个域中并使用了 xml,我知道这不是最好的方法,但我已经花了 2 天时间,不能再浪费了。
【问题讨论】:
-
您使用的是 WCF、ASMX 吗?您也可以使用 ASP .NET MVC 轻松返回 JSON 数据。
-
您是否考虑使用 RESTful 服务?在这种情况下,这可能对您更有效。
-
我正在使用 ASMX... 对 C# Web 服务非常陌生...我通常使用 PHP 并且它很容易完成。
-
ASMX 是旧的遗留技术,不应该用于新的开发。您应该改用 WCF。
-
@Zoidberg: 你能不能给我一些指示restful...我相信我正在使用它..
标签: json web-services asmx javascriptserializer