【发布时间】:2013-07-22 19:27:26
【问题描述】:
我正在使用以下内容与 Web api 端点控制器通信。我遇到的问题是它返回 xml 而不是 json。据我了解,您需要传递如下所示的内容类型来确定返回类型,这就是我将其设置为 JSON 的原因。我对如何返回 json 感到困惑。
$.ajax({
url: 'http://localhost:43043/api/main?ordernumber=33232048&category=damage',
type: 'GET',
contentType: "application/json; charset=utf-8",
//data: {
// orderNumber: num,
// category: cat
//},
success:
function (data) {
var usingRoutData = document.URL;
ko.applyBindings(new InvoiceViewModel(data));
},
error: function () {
alert('failure');
}
});
【问题讨论】:
-
您需要
dataType:"json"作为 .ajax 调用的选项之一,当然还要确保服务器输出有效的 json 代码。 -
您需要修改服务器端脚本并告诉 IT 返回 json。客户端不只是接收发送的任何内容并将其转换为您预期的数据格式。如果它返回 XML,那是服务器端问题,而不是客户端/javascript。
-
一切都与内容协商有关,Web API 将在可用格式中选择最合适的。禁用除 JSON 之外的 Web api 配置上的所有格式或在 ajax 调用中添加 Accept 标头同样可以解决您的问题。这完全取决于您是始终需要 JSON 响应还是只需要一次。
标签: jquery .net json asp.net-mvc-4 asp.net-web-api