从javascript调用asp.net页面方法在Firefox中不起作用

从javascript调用asp.net页面方法在Firefox中不起作用,javascript,asp.net,json,jquery,pagemethods,Javascript,Asp.net,Json,Jquery,Pagemethods,我正在使用PageMethod w/javascript调用服务器端代码: function getMonths() { PageMethods.BindMonthlyPeriods(getMonthsSuccess, onFailure); } } function getMonthsSuccess(result, userContext, methodName) { var picker = document.getElementById("m

我正在使用PageMethod w/javascript调用服务器端代码:

 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); 
    }
}
这在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);
            }

        }
    });
函数getMonths(){
$.ajax({
类型:“POST”,
url:“page.aspx/BindMonthlyPeriods”,
数据:“{}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(msg){
var picker=document.getElementById(“monthPicker”);
对于(变量i=0;i
编辑

使用Firebug,我在Net选项卡中未发现任何错误msgs,但在Console选项卡中发现了此错误:


未捕获异常:[异常…“参数不足”nsresult:“0x80570001(NS_错误\u XPC\u参数不足)”位置:“JS帧::::GetMonthSuccess::line 251”数据:否]

通过向monthpicker的“add”方法添加空参数解决了此问题:

picker.add(newOption,null);

**脚本:*var isPostBack=false;函数saveChanges(){if(!isPostBack){
PageMethods.savePageChanges(tableData、updateContent\u OnSucceeded、updateContent\u onFailure);
返回false;
}否则{
返回true;}
}
函数updateContent_OnSucceeded(retval){
isPostBack=true;
$('#)。单击();
}
函数更新内容失败(val){
警报(“错误:+val.get_message());
}**CS:*[System.Web.Services.WebMethod]
公共静态bool savePageChanges(列出行数据阵列序列)
{}

@Sean,你能用firebug检查问题是什么吗,它清楚地显示了ajax中的错误jQuery ajax调用在IE中也不起作用。我想我宁愿使用jQuery方法而不是PageMethod方法。我会检查firebug。@Sean,用firebug调试,我们可以很容易地找到问题,请参阅net选项卡中的resonse。@Sean您的方法需要任何参数,如果它失败了,那么该方法没有任何参数,只返回一个字符串[]。
 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);
            }

        }
    });
< asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click"
                OnClientClick="return saveChanges()" />   **Script:**  var isPostBack=false; function saveChanges() { if(!isPostBack){
         PageMethods.savePageChanges(tableData, updateContent_OnSucceeded,      updateContent_onFailure);
  return false;
  }else{ 
     return true;}
   }




    function updateContent_OnSucceeded(retval) {
       isPostBack=true;
      $('# <%=btnSave.ClientID%>).click();
    }

    function updateContent_onFailure(val) {
        alert("Error: " + val.get_message());

    }**CS:**[System.Web.Services.WebMethod]
public static bool savePageChanges(List<List<string>> rowDataArraySeries)
{}