Ich habe Probleme, eine WebMethod zu arbeiten. Es ist alles richtig eingerichtet, und ich habe es auf das kleinste Beispiel vereinfacht.AJAX löst WebMethod nicht aus aber gibt ganze HTML-Seite bei Erfolg zurück
AJAX:
function DoAJAX() {
$.ajax({
type: 'POST',
url: 'faq.aspx/DoAJAX',
data: "AJAX Test",
dataType: 'text',
success: function (data, status) {
debugger;
alert(status + " " + data)
},
error: function() {
alert("error!")
}
});
}
WebMethod (in faq.aspx.cs, unter Verwendung von System.Web.Services und public static):
[WebMethod]
public static string DoAJAX(string foo) {
return foo;
}
}
HTML (faq.aspx, mit Script und EnablePageMethods)
<%@ Page Title="" Language="C#" MasterPageFile="~/MP.Master" AutoEventWireup="true" CodeBehind="faq.aspx.cs" Inherits="Lottery.faq" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<input type="button" value="AJAX" onclick="DoAJAX()" />
</asp:Content>
Wenn Sie darauf klicken, kehrt der AJAX-Aufruf einen Erfolg mit folgendem Inhalt in Daten: http://pastebin.com/X0Vke0qj
Ein Haltepunkt in DoAJAX()WebMethod wird nie erreicht.
Warum es nicht zurück, die „AJAX-Test“ Zeichenfolge, die gesendet wurde, warum die WebMethod nicht getroffen wird?
Ich habe gerade versucht, und ich bekomme die gleiche Antwort (Daten = ganzes HTML-Dokument). Und der Haltepunkt in WebMethod wird nicht ausgelöst. – Tiago
Haben Sie in Ihrer 'web.config' auch' ScriptModule' unter 'httpModules' registriert? Wenn das fehlt, wird es auch nicht funktionieren. – Scott
Scott: Ich habe kein ScriptModule in web.config (ist ziemlich leer), können Sie genauer erklären, was Sie bitte hinzufügen? Auch dein vorheriger Vorschlag hat nicht funktioniert. ("Fehler!") – Tiago