/ / Asp.net não funcionam com a maioria dos navegadores - javascript, asp.net, asp.net-ajax

Os pagemethods do Asp.net não funcionam com a maioria dos navegadores - javascript, asp.net, asp.net-ajax

Estou usando métodos de ASP.net. Esse problema que estou tendo é que ele não funcionará com determinados navegadores. por exemplo, IE, Opera Safari e o novo Firefox. Funciona com o Chrome. Encontrei isso, mas não ajudou no meu caso http://www.carlj.ca/2008/06/18/fixing-firefoxs-ns_error_not_available-error-when-using-pagemethods/ qualquer ajuda seria muito apreciada.

<asp:ScriptManager ID=”scManager″ enablepagemethods=”true” runat=”server” />
<asp:Button ID="btnBuyNow" runat="server" Text="Buy Now" OnClientClick="AddProductToCart()" />

<script type="text/javascript">
function AddProductToCart() {
//hard coded values for testing, productId, quantity
PageMethods.AddProduct(142, 1);
window.location.href = "../Cart.aspx";
}
</script>

[System.Web.Services.WebMethod]
public static void AddProduct(string prodId, string quantity)
{
//adding product to cart
//When testing with Chrome breakpoint is hit,
//All other browsers dont hit break point
CurrentCart.AddProduct(prodId, quantity);
}

Respostas:

0 para resposta № 1
  <script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#Save").click(InsertClient);
}
);
function InsertClient() {
var BizName = $("#txtBizName").val();
alert(BizName);
$.ajax({
url: "Common.asmx/InsertClient",
type: "POST",
dataType: "json",
data: "{BizName:"" + BizName + ""}",
contentType: "application/json; charset=utf-8",
success: function(msg) {
$("#status").html("Id: "+msg["d"]["Id"]);
},
error: function(e) {
$("#status").innerHTML = "Unavailable";
}
});
}
</script>



in Common.asmx write webmethod as follow

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Client InsertClient(string BizName)
{
Client objClient = new Client();
objClient.BizName = BizName;
InsertData(objClient);
return objClient;
}

0 para resposta № 2

Pode haver uma solução melhor para isso, mas essa foi a única coisa que acabou por funcionar.

<script type="text/javascript">

function AddProductToCart() {

//hard coded values for testing, productId, quantity
PageMethods.AddProduct(142, 1);

var millisecondsToWait = 500;
setTimeout(function () {
window.location.href = "../Cart.aspx";
}, millisecondsToWait);
}
</script>