我有以下代码。
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没有执行该方法的原因是什么?
答案 0 :(得分:0)
可能正在使用服务器控件并从后面的代码调用Call JQuery()也无济于事。
答案 1 :(得分:0)
我搜索了很多解决方案,应用了很多代码,但没有任何作用 我得出结论,在野生动物园中不可能实现以下。 如果在asp.net c#页面中,如果你有href属性设置为“any aspx或html page”的标签,并且标签有“onclick”事件,它会占用一些JS函数,然后使用JQuery Callback执行“Web方法”。这种情况不起作用,并且webmethod不会在这种情况下执行,因为safari浏览器执行JS函数然后导航到页面(在href属性中设置),但不调用webmethod。
这完全符合我的研究。