我试图从WEB API调用中检索JSON结果。使用WEB API的Ajax Jquery请求
我的WEP API方法:
[AcceptVerbs("GET", "POST")]
public object GetTest()
{
rep = new ChatRepository();
chatBoxCLS box = rep.Chatrequest(chatRequestLevel.Parent, null);
System.Web.Mvc.JsonResult jsonResult = new System.Web.Mvc.JsonResult
{
Data = box,
JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet
};
return jsonResult.Data;
}
我已经修改,如下WebapiConfig.cs,所以它总是返回JSON
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "get", id = RouteParameter.Optional }
);
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
下面是我的Jquery Ajax调用:
<script type='text/javascript'>
$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'http://localhost:6606/api/values/GetTest',
dataType: 'json',
crossDomain: true,
success: function (msg) {
alert('success');
},
error: function (request, status, error) {
alert('error');
}
});
});
</script>
它总是以错误警报告终。没有从WEB API接收数据。我试过调试,发现我的请求成功地访问了WEB API方法并返回JSON。以下是它返回的JSON数据。
{ “LISTOFITEMS”:[{ “ID”:14, “说明”: “新 试验”, “display_number随后”:1},{ “ID”:4 “描述”: “运行” “display_number随后”:2},{ “ID”:3 “描述”: “销售”, “display_number随后”:3},{ “ID”:5 “描述”: “技术”, “display_number随后”:4 }],“reply”:null,“history”:null,“Initialhistory”:null,“Question”:“”“chatids”:null,“displayNum”:null}
为什么我不是在客户端获得任何结果?
我想这是因为你只返回'的Json Data'不包括'JsonRequestBehavior'使其无法正常工作的问题已获得解决取得要求? – WannaCSharp
@WannaCSharp我试图与返回新System.Web.Mvc.JsonResult() { 数据= jsonResult.Data, JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet };但没有工作 – chamara
你可以尝试看浏览器控制台,如果它给出任何错误? – WannaCSharp