WEB API 呼び出しから JSON 結果を取得しようとしています。
私の 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,"description":"新しいテスト","display_number":1},{"id":4,"description":"運用中","display_number":2} ,{"id":3,"description":"sales","display_number":3},{"id":5,"description":"technical","display_number":4}],"reply": null,"history":null,"Initialhistory":null,"質問":"","chatids":null,"displayNum":null}
クライアント側で結果が得られないのはなぜですか?