ASP.Net Web服务不会返回JSON – Always XML

我正在尝试创建一个简单的AJAX和Web服务测试(使用C#.Net 2.0)以JSON格式返回数据,我(我相信)我需要的一切但我一遍又一遍地遇到同样的问题。 Web服务的响应始终是XML。 (它总是有作为第1行)。

我已经尝试过ScriptMethod标签中的各种选项,但没有任何区别。

这个调用工作正常,但是我得到了一个带有响应的“parsererror”,我认为这是无效的JSON。 我可以在浏览器中调用Web服务方法,并以XML格式获取我期望的返回值。 Fiddler还表明请求和响应正如我所发现的那样。

关于完全相同的问题,这里已经有几个问题,但没有一个给我一个有效的答案。

如果您需要更多信息,请提出问题。

C#

 using System; using System.Collections.Generic; using System.Web; using System.Web.Services; using System.Web.Script.Services; using System.Web.Script.Serialization; namespace jQueryWebServiceTest { ///  /// This is a simple web service to test calling from javascript using AJAX, and getting a response. ///  [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [ScriptService] public class Service1 : System.Web.Services.WebService { [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string SayHello() { // I've tried both this... var response = new { value = "Hello" }; JavaScriptSerializer json = new JavaScriptSerializer(); return json.Serialize(response); // and this... return "Hello"; } } } 

使用Javascript

 $(function () { var data = JSON.stringify({ Name: "John" }); // This is not used - part of other testing. data = "{}"; $.ajax({ type: "POST", data: data, url: "TestService.asmx/SayHello", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { console.log(data); }, error: function (error, status) { console.log("status = " + status); console.log(error); } }); }); 

我设法通过在web.config中添加以下2个块来实现它…

system.web里面的configuration块中……

    

和其他任何地方,在system.web