我正在调用一个 Web 服务,它返回 xml 而不是 json。我在这里阅读了很多关于 SO 的主题,但没有任何帮助。
这是我的电话:
<script type="text/javascript">
$(document).ready(function() {
$("#myabtags").tagit({
tagSource: function(request, response) {
$.ajax({
type: "POST",
url: "Services/ForumServices.asmx/GetTags",
dataType: "application/json; charset=utf-8",
data: { prefixText: request.term, count: 10 },
success: function(data) {
response(data);
}
});
},
removeConfirmation: true
});
});
</script>
这是我的网络服务:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string[] GetTags(string prefixText, int count)
{
var data = SystemContext.Instance.Tags;
string prefixLower = prefixText.ToLower();
return data.Where(c => c.Value.Contains(prefixLower) && c.IsVisible).OrderBy(c=>c.Value).Take(count).
Select(c=>c.Value).ToArray();
}
这是我的回应:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<string>metafor</string>
<string>tyngdekraft</string>
</ArrayOfString>
我的 web.config:
<handlers>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="AjaxToolkit" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
我正在使用 IIS 7.5 运行 ASP.NET 4.0。
所以我基本上希望我的电话返回 JSON。