首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >safari中不执行Web方法($.ajax回调)

问safari中不执行Web方法($.ajax回调)
EN

Stack Overflow用户
提问于 2012-06-20 20:10:42
回答 2查看 383关注 0票数 0

我有以下代码。

ASPX页面

代码语言:javascript
复制
<a href="AnyASPXPageOfWebsite.aspx" onclick="javascript:CallJQuery();" > Set Price </a>

JS代码

代码语言:javascript
复制
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中的Webmethod

代码语言:javascript
复制
 [WebMethod(EnableSession = true)]
    public string SetPrice(string Price)
    {
        HttpContext.Current.Session["ProdPrice"] = Price;
        return "success";
    }

我的代码可以在除safari之外的所有浏览器中运行,我在SetPrice()方法中设置了断点,但在SAFARI中不能执行。同时执行成功功能,并显示警告消息

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-21 13:21:49

我寻找了很多解决方案,应用了许多代码,但都没有效果。我得出的结论是,在safari中不可能做到以下几点。如果在asp.net网页中,如果将href属性标记设置为“任何aspx或html页面”,且标记有"onclick“事件,则会执行一些JS函数,然后使用JQuery回调执行”c#方法“。这种情况不起作用,webmethod在这种情况下不会执行,因为safari浏览器会执行JS函数,然后导航到页面(在href属性中设置),而不是调用webmethod。

这就是我的研究结果。

票数 0
EN

Stack Overflow用户

发布于 2012-06-20 20:28:50

使用服务器控件和从代码后台调用CallJQuery()可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11119259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档