我試圖從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