从javascript调用asp.net页面方法无法在Firefox中运行

时间:2011-05-01 18:23:15

标签: javascript asp.net json jquery pagemethods

我使用带有javascript的PageMethod来调用服务器端代码:

 function getMonths() {

   PageMethods.BindMonthlyPeriods(getMonthsSuccess, onFailure);            }
 }

 function getMonthsSuccess(result, userContext, methodName) {

    var picker = document.getElementById("monthPicker");

    for (var i = 0; i < result.length; i++) {

        var newOption = document.createElement('option');
        newOption.text = result[i];
        newOption.value = result[i];

        picker.add(newOption); 
    }
}

在代码隐藏中使用它:

    [WebMethod]
    public static string[] BindMonthlyPeriods()
    {

    }

这在IE / Chrome中运行良好,但在Firefox中没有。没有特定的错误信息数据只是没有在Firefox中填充。

我也试过使用jQuery ajax调用,但这不起作用,虽然我不确定我是否已正确完成:

 function getMonths() {

    $.ajax({
        type: "POST",
        url: "page.aspx/BindMonthlyPeriods",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            var picker = document.getElementById("monthPicker");

            for (var i = 0; i < msg.length; i++) {

                var newOption = document.createElement('option');
                newOption.text = result[i];
                newOption.value = result[i];

                picker.add(newOption);
            }

        }
    });

编辑

使用Firebug我没有在Net选项卡中找到任何错误消息,但在控制台选项卡中找到了此错误:

未捕获异常:[异常......“参数不足”nsresult:“0x80570001(NS_ERROR_XPC_NOT_ENOUGH_ARGS)”位置:“JS frame :: http://xxxxx.xxxxxxx.com/.../page.aspx :: getMonthsSuccess :: line 251”data:no]

2 个答案:

答案 0 :(得分:0)

通过将null参数添加到monthpicker的'add'方法来解决这个问题:

picker.add(newOption,null);

答案 1 :(得分:0)

120px