Service AJAX-Anfragen, die mit dem webmethod-in der ASPX-Seite
Ich versuche zu service AJAX-Anfragen, die mit einer Methode in meiner .aspx-Seite. Aus irgendeinem Grund bin ich nicht immer die Daten zurückgegeben, die ich will. Kann mir jemand sagen, was ich falsch mache?
mypage.aspx:
<%@ Page Language="VB" Title="My Page" %>
<%@ Import Namespace="System.Web.Services" %>
<%@ Import Namespace="System.Collections.Generic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(sender As Object, e As System.EventArgs)
End Sub
<WebMethod()> Public Function testmethod() As Integer
Return 5
End Function
</script>
<html>
<!--...rest of page including mybutton and myresults-->
JQuery:
$("#mybutton").click(function() {
$.ajax({
type: "POST",
url: "mypage.aspx/testmethod",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert("success");
$("#myresults").html(msg.d);
},
error: function(msg) {
alert("error:" + JSON.stringify(msg));
}
});
});
Wenn ich auf mybutton
bekomme ich eine Warnung "error:" und dann ganze Menge HTML-Code, der sagt:
Unknown web method testmethod.
Parameter name: methodName
InformationsquelleAutor Flash | 2012-01-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Methode muss
Shared
:Auch, ich bin mir nicht sicher, dass die Seite Methoden werden unterstützt, wenn Sie nicht eine code-behind-Datei.
Zum add - In C# - es muss
static
InformationsquelleAutor Dave Ward
Was der Fehler ist wieder vergangen?? Der Grund, warum Sie werden sehen, wie die ganze html-Seite ist, weil Sie haben einen Fehler im code und der msg übergeben wird wieder die volle html, die Ihnen sagt, wo der Fehler ist. Ich bin sicher, wenn Sie den Fehler beheben, dann würden Sie in Ordnung sein.
Ich bin mir nicht sicher, ob Sie erwarten, dass die Fehlermeldung von der codebehind. Denken Sie daran - der Erfolg oder Fehler-Funktionen aufgerufen wird, in der Ajax Sektion aufgerufen werden, je nachdem, ob der webservice-Methode aufgerufen wurde (erfolgreich oder nicht. Ich denke, dass Sie sind denken, sehen Sie die Fehlermeldung aus dem webmethod hier, aber in der Realität, wenn Sie das webmethod-wirft den Fehler dann müssten Sie noch eine erfolgreiche ajax-Aufruf und damit der "Erfolg" - Funktion wäre die man läuft. Der "Fehler" - Funktion wird nur ausgeführt, wenn das ganze webmethod-Aufruf fehlschlägt, so gibt es keine Antwort vom server.
Hoffe das macht Sinn.
InformationsquelleAutor Adam