使用参数调用WebMethod的Ajax无效

时间:2015-04-17 15:47:55

标签: javascript jquery asp.net ajax webmethod

这是我的JavaScript方法:

function CloseDialog() {           
    var ieAppIdstr = $("[id$=hfIEAppId]").val();
    $.ajax({
        type: "POST",
        url: "../Notes/Notes.aspx/UpdateNoteStatus",
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify({ ieAppId: ieAppIdstr }),
        success: function (data) {

        },
        failure: function (msg) {
            $('#output').text(msg);
        }
    });
    popUpClosed();
}

我的网络方法:

[WebMethod(EnableSession = true)]
public static void UpdateNoteStatus(string ieAppId)
{
    UserRole usrRole = HttpContext.Current.Session[Settings.Default.USERROLE] as UserRole;
    string loggedInUserRole = (usrRole != null && usrRole.IsIMERole) ? "IME" : "PROVIDER";
}

此代码在Chrome中正常运行,但在IE9及更低版本中无效。我搜索了谷歌和Stack Overflow。所有解决方案都建议将随机数据添加到URL或使缓存为false。我尝试了两种解决方案。仍然没有调用web方法。

我可能在这里做错了...我试过没有参数,代码工作正常。只有当我添加参数时,代码才会起作用。

请提出一些解决方案。谢谢:))

编辑:我没有收到任何错误。此代码放在jQuery弹出窗口中。

2 个答案:

答案 0 :(得分:0)

快速浏览一下,既然你说它是IE9及以下问题,我认为问题是IE9没有JSON.stringify。您可以使用https://github.com/douglascrockford/JSON-js/blob/master/json.js将JSON对象添加到旧版浏览器。

答案 1 :(得分:0)

你可以试试这个:

data: '{ieAppId: "' + ieAppIdstr  + '" }',