我有以下代码。
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中的Webmethod
[WebMethod(EnableSession = true)]
public string SetPrice(string Price)
{
HttpContext.Current.Session["ProdPrice"] = Price;
return "success";
}我的代码可以在除safari之外的所有浏览器中运行,我在SetPrice()方法中设置了断点,但在SAFARI中不能执行。同时执行成功功能,并显示警告消息
safari不执行该方法的原因是什么?
发布于 2012-06-21 13:21:49
我寻找了很多解决方案,应用了许多代码,但都没有效果。我得出的结论是,在safari中不可能做到以下几点。如果在asp.net网页中,如果将href属性标记设置为“任何aspx或html页面”,且标记有"onclick“事件,则会执行一些JS函数,然后使用JQuery回调执行”c#方法“。这种情况不起作用,webmethod在这种情况下不会执行,因为safari浏览器会执行JS函数,然后导航到页面(在href属性中设置),而不是调用webmethod。
这就是我的研究结果。
发布于 2012-06-20 20:28:50
使用服务器控件和从代码后台调用CallJQuery()可能会有所帮助。
https://stackoverflow.com/questions/11119259
复制相似问题