此操作需要iis集成管道模式

时间:2015-02-27 12:46:40

标签: javascript c# jquery asp.net ajax

我在我的aspx页面上调用了ajax:

 $.ajax({
                    url: "/SiteAdmin3/UpsIntegration.aspx/addUpdatePackageData",
                    data: JSON.stringify({
                        '_OrderNumber': $("#txtOrderNumber").val(),
                        '_PackageNumber': $("#lblPackageNumber").html(),
                        '_Height': $("#txtPackageHeight").val(),
                        '_Width': $("#txtPackageWidth").val(),
                        '_Lenght': $("#txtPackageLenght").val(),
                        '_Weight': $("#txtPackageWeight").val(),
                        '_ReferanceNumber1': $("#txtPackageReferanceNumber1").val(),
                        '_ReferanceNumber2': $("#txtPackageReferanceNumber2").val(),
                        '_ReferanceNumber3': $("#txtPackageReferanceNumber3").val(),
                        '_ReferanceNumber4': $("#txtPackageReferanceNumber4").val(),
                        '_ReferanceNumber5': $("#txtPackageReferanceNumber5").val(),
                        '_PackageType': $("#ddlAddPackageType").val()
                    }),
                    contentType: 'application/json;',
                    dataType: "json",
                    type: 'POST',
                    cache: false,
                    success: function (Data) {

//whatever operation to be performed
},
                    error: function (err) {
                        alert("Error in Saving.Please try later." + JSON.stringify(err));
                    }
                });

在cs页面上,我的addUpdatePackageData方法是:

[WebMethod()]
    public static ShipStationIntegration[] addUpdatePackageData(string _OrderNumber, string _PackageNumber, string _Height, string _Width, string _Lenght, string _Weight, string _ReferanceNumber1, string _ReferanceNumber2, string _ReferanceNumber3, string _ReferanceNumber4, string _ReferanceNumber5, string _PackageType)
    {
        System.Collections.Generic.List<ShipStationIntegration> lst = new List<ShipStationIntegration>();
        try
        {
            lst = bindPackageListFromPageMethod();



            return lst.ToArray();
        }
        catch (Exception)
        {

            return lst.ToArray();
        }

    }

这将返回正确的列表。

但是在得到响应之后它总是进入ajax的错误块并且给出错误:

enter image description here

我不明白它有什么问题?

我也尝试过:

contentType: 'application/json; charset=utf-8',

但仍有错误。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

如果您使用的是VS 2010集成Web服务器(Cassini),则它不支持集成管道模式。您需要下载IIS Express并将项目设置为使用它。

答案 1 :(得分:1)

当您从网络方式返回并且响应格式应为JSON时,响应会传递给httpModule,并将响应序列化为JSON并尝试执行Response.Headers.Add("Content-type", "application/json");但是这种方式添加http标头不受Cassini支持,因为这种方式需要集成管道模式,并且正如@Kevin所说:

  

Cassini不支持Integrated Pipeline