<script type="text/javascript">
$(document).ready(function () {
$.ajaxSetup({
type: 'POST',
url: 'AjaxService.asmx/GetBorughs',
contentType: 'application/json; charset=uft-8',
dataType:'json'
});
$('#btnCount').click(function () {
$.ajax({
success: function (respo) {
$("#log").html('').append("<ul id='boroughList'>");
var places = respo.d;
for (var i = 0; i < places.length; i++) {
$("#boroughList").append('<li>' + places[i].Name + ' ' + places[i].population + ' ' + places[i].created + '</li>');
}
$("#log").append('</ul>');
}
});
});
});
</script>
请参阅下面我从上面的ajax调用中调用的Web服务方法:
public class Borough
{
public string Name { get; set; }
public int population { get; set; }
public short created { get; set; }
}
List<Borough> boroughs = new List<Borough>
{
new Borough{Name="Andhra",population=10000,created=1940},
new Borough{Name="TN",population=20000,created=1945},
new Borough{Name="Kerala",population=30000,created=1950},
new Borough{Name="Karnataka",population=40000,created=1955}
};
[WebMethod]
public List<Borough> GetBorughs()
{
return boroughs;
}
问题:我从jquery ajax调用webService方法。如果$ .ajax()调用的content-Type anddataType设置为json,我将获得响应为json对象。但是,如果我设置相同的内容类型&amp;在$ .ajaxSetup()调用中,dataType设置为json,我得到xml响应。如果我在$ .Ajax()调用中保留相同的选项,那么我将获得json对象。请告诉我为什么ajaxSetup调用无法设置返回类型。
答案 0 :(得分:0)
如官方网站所述,建议不要使用jQuery.ajaxSetup()
Api。
如jQuery网站所述: -
说明:为将来的Ajax请求设置默认值。它的用途是 不推荐。
此处指定的设置将影响对$ .ajax或的所有调用 基于Ajax的衍生产品,例如$ .get()。这可能导致不良后果 因为其他调用者(例如插件)可能会期待这种行为 正常的默认设置。 出于这个原因,我们强烈建议 反对使用此API。而是在。中明确设置选项 调用或定义一个简单的插件来执行此操作。