Entschuldigung für mein Englisch
Ich habe eine Website mit einigen aspx-Seiten erstellt, zBeispiel: Default.aspx und ein Webdienst namens DataService.asmx. Von der Default.aspx-Seite möchte ich den Webdienst mit jquery aufrufen. Das Problem ist, dass ich den Webdienst nicht mit jquery aufrufen kann
Ich verwende Mono 2.4.4 auf Ubuntu Server Version 10.04.
Wie kann ich einen Webdienst mit Javascript und JQuery nutzen?
Bitte helfen Sie mir, danke
Mit Firebug sehe ich
Object reference not set to an instance of an object
Description: HTTP 500. Error processing request.
Stack Trace: System.NullReferenceException: Object reference not set to an instance of an object at System.Web.Script.Services.WebServiceData.GetWebServiceData (System.Web.HttpContext context, System.String virtualPath, Boolean failIfNoData, Boolean PageMethods) [0x00000 ] at System.Web.Script.Services.WebServiceData.GetWebServiceData (System.Web.HttpContext context, System.String virtualPath) [0x00000] at System.Web.Script.Services.RestHandler.CreateHandler (System.Web.HttpContext context) [ 0x00000] at System.Web.Script.Services.RestHandlerFactory.GetHandler (System.Web.HttpContext context, RequestType System.String, System.String url, pathTranslated System.String) [0x00000] at System.Web.Script.Services.ScriptHandlerFactory . GetHandler (System.Web.HttpContext context, RequestType System.String, System.String url, pathTranslated System.String) [0x00000] at System.Web.HttpApplication.GetHandler (System.Web.HttpContext context, System.String url, Boolean ignoreContextHandler) [0x00000] at System.Web.HttpApplication.GetHandler (System.Web.HttpContext context, System.String url) [0x00000] + at System.Web.HttpApplication <Pipeline> c__Iterator2.MoveNext () [0x00000]
Versionsinformationen: Laufzeit: Mono 2.4.4 ASP.NET Version: 2.0.50727.1433
Webdienstcode (DataService.asmx)
[WebService (Namespace = "http://tempuri.org/")]
[WebServiceBinding (ConformsTo WsiProfiles.BasicProfile1_1 =)]
[ScriptService ()]
public class DataService: System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod (ResponseFormat = ResponseFormat.Json, XmlSerializeString = false)]
public string SayHello ()
{
return "Hello !!!";
}
}
Javascript (Default.aspx)
$ (Document). Ready (function () {
$.Ajax ({
type: "POST",
url: _webServiceAddress + method,
Date: parameters,
contentType: "application / json, charset = utf-8",
dataType: "json",
success: function (data) {alert (data);}
error: function () {alert ("Error");}
});
});
Dies ist der JavaScript-Code. Der andere war falsch, sorry
$(document).ready(function () {
$.ajax({
type: "POST",
url: "DataService.asmx/SayHello",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () { alert("Ok"); },
error: function () { alert("Error"); }
});
});
Antworten:
2 für die Antwort № 1Ihr Javascript ist falsch:
$ (document). ready (function () {
$.ajax ({
type: "POST",
url: _webServiceAddress + method,
data: parameters,
contentType: "application/json,charset=utf-8",
dataType: "json",
success: function (data) {alert (data);},
error: function () {alert ("Error");}
});
});
Beachten Sie die Groß- und Kleinschreibung, nicht das Datum und einen durch Kommas getrennten Erfolg und Fehler.
0 für die Antwort № 2
Derzeit denke ich, dass es nicht möglich ist, von Ajax-Aufrufen zu MyService.asmx / MyMethod aufzurufen. 500 wird immer zurückgegeben. Ich verfolge wochenlang eine Lösung und ersetze jetzt .asmx durch ServiceStack.NET Dienstleistungen.