J'ai recréé votre code de mon côté.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Js/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$("#btnSample").live("click", function() {
$.ajax({
type: "POST"
, data: {}
, url: "Default.aspx/SampleMethod"
, contentType: "application/json; charset=utf-8"
, dataType: "json"
, success: function(msg) {
alert("Success : " + msg.d);
}
, error: function(error) {
$("#lblSample").text(error.status);
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Label runat="server" ID="lblSample"></asp:Label>
<input type="button" id="btnSample" runat="server" value="Show What" />
</form>
</body>
</html>
C'est un copier-coller. Je l'ai testé dans IE8 et ça marche bien.
Le seul changement que je l'ai fait faire changeait votre sortie de succès à utiliser MSG.D Il en est ainsi, il délivre en sortie le succès: jQuery est super. msg ne provoquerait PAS de plantage - il produirait juste une sortie Success: [object Object] (msg est un objet qui contient une chaîne appelée d dont le retour de la méthode statique est appelé).
Je n'ai pas changé votre méthode statique du tout
C'est dans ma classe (souvenez-vous Default.aspx)
public partial class _Default: System.Web.UI.Page { protected void Page_Load (expéditeur de l'objet, EventArgs e) { }
[WebMethod]
public static string SampleMethod()
{
return "jQuery is Super";
}
}
Ceci est assis à l'intérieur de mes Default.aspx.cs fichier
J'ai essayé de déconner pour obtenir une erreur 200 OK et la seule fois où j'ai réussi ce fut quand j'avais
, contentType: "application/ json;charset=utf-8"
qui a un espace entre le/et json.
Mais ce n'est pas dans votre question. Peut-être qu'il est assis dans votre code de cette façon et vous l'avez corrigé dans la question?
Y at-il une exception se produit dans votre page C#? – rahul
Je pense que ce pourrait être une bonne idée de donner plus de détails sur le côté serveur. –
Il n'y a aucune exception. Le statut de l'erreur et l'erreur statusText sont 200 et Ok respectivement. Lorsque le bouton est cliqué, page_load est déclenché, mais la méthode statique (SampleMethod) n'est pas déclenchée. – superachu