jquery中的content-type $ .ajaxSetup()调用没有得到应用

时间:2014-09-09 05:23:30

标签: c# javascript jquery ajax json

    <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调用无法设置返回类型。

1 个答案:

答案 0 :(得分:0)

如官方网站所述,建议不要使用jQuery.ajaxSetup() Api。

如jQuery网站所述: -

  

说明:为将来的Ajax请求设置默认值。它的用途是   不推荐。

     

此处指定的设置将影响对$ .ajax或的所有调用   基于Ajax的衍生产品,例如$ .get()。这可能导致不良后果   因为其他调用者(例如插件)可能会期待这种行为   正常的默认设置。 出于这个原因,我们强烈建议   反对使用此API。而是在。中明确设置选项   调用或定义一个简单的插件来执行此操作。