【问题标题】:Web Method is not executed in safari($.ajax callback)Web 方法未在 safari 中执行($.ajax 回调)
【发布时间】:2012-06-22 13:43:49
【问题描述】:

我有以下代码。

ASPX 页面

<a href="AnyASPXPageOfWebsite.aspx" onclick="javascript:CallJQuery();" > Set Price </a>

JS 代码

function CallJQuery() {

            var prc = document.getElementById('<%= hdnPrice.ClientID %>');
            var strPrc = prc.value;

            $.ajax({
                type: "POST",
                url: "/Services/TestService.asmx/SetPrice",
                data: {Price : "'"+ strPrc + "'"},
                dataType: "json",

                error: function(xml, status) {
                    alert('Error is ' + status);
                },
                success: function(xml, status) {
                    alert('suceess' + status );
                }

            });
}

TestService.asmx 中的 Web 方法

 [WebMethod(EnableSession = true)]
    public string SetPrice(string Price)
    {
        HttpContext.Current.Session["ProdPrice"] = Price;
        return "success";
    }

我的代码适用于除 SAFARI 以外的所有浏览器 我在 SetPrice() 方法设置断点,但在 safari 的情况下不执行。 也会执行成功函数并显示警告消息

safari 没有执行该方法的原因是什么?

【问题讨论】:

    标签: jquery asp.net ajax webmethod


    【解决方案1】:

    我搜索了很多解决方案,应用了很多代码但没有任何效果 我得出结论,在 safari 中不可能跟随。 如果在 asp.net c# 页面中,如果您的标签的 href 属性设置为“任何 aspx 或 html 页面”并且标签具有“onclick”事件,该事件执行一些 JS 函数,然后使用 JQuery 回调执行“Web 方法”。这种情况不起作用,并且在这种情况下没有执行 webmethod,因为 safari 浏览器执行 JS 函数然后导航到页面(在 href 属性中设置),但没有调用 webmethod。

    这都是根据我的研究。

    【讨论】:

      【解决方案2】:

      可能正在使用服务器控制并从代码隐藏调用 CallJQuery() 会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多