Laden...

jQuery -> asp.net webservice call

Erstellt von Coooder vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.079 Views
C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 10 Jahren
jQuery -> asp.net webservice call

Hallo liebe Community,

ich habe ein ASP.NET MVC4 projekt in dem ich per jQuery auf einen Webservice zugreifen will.
Hier erstmal der Code:

function test()
        {
            $.ajax({
                type: "POST",
                url: "DataBaseService.asmx/HelloWorld",
                succses: function (msg) { alert("succses: " + msg); },
                error: function (a, b, c) { alert(a + ' | ' + b + ' | ' + c); }
            });
           
        }
[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class DataBaseService : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }

Ich sehe einfach keinen fehler! Er springt immer in die error function und gibt folgendes im alert aus: > Fehlermeldung:

[object Object] | error | Not Found

wieso findet er meine HelloWorld Mehtode nicht? In sämtlichen beispielen wirds genau so gemacht!
liegt es vieleicht daran das ich das alles local teste und nich auf nen richtigen server? aber das kann ich mir nich vorstellen ....
die dateien liegen auch im selben verzeichnis ....

Hoffe mir kann einer helfen 😕 .... vielen dank im vorraus.

5.658 Beiträge seit 2006
vor 10 Jahren

Hi Coooder,

  
succses: function (msg) { alert("succses: " + msg); }  

in die success-Methode kann er ja schonmal nicht springen, da du sie falsch geschrieben hast.

Christian

Weeks of programming can save you hours of planning

S
417 Beiträge seit 2008
vor 10 Jahren

Hallo,

hier steht doch alles schön beschrieben:
http://blog.coreycoogan.com/2010/12/17/calling-asp-net-web-service-asmx-from-jquery/
Hast du alles beachtet?
Content-Type des ajax-requests auf "application/json" gesetzt?
In deinem Fall leers data (data: {}) mitgeschickt?
Ist "succses" nur hier falsch geschrieben oder auch im echten Code?

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 10 Jahren

ja, ich hatte es tatsächlich falsch geschrieben ... -.- ... das kommt davon wenn man sich zu sehr an IntelliSense gewöhnt ^^

ich habe den Code jetzt angepasst, jedoch funktioniert es immer noch nicht.

function test()
        {
            $.ajax({
                type: "POST",
                url: "DataBaseService.asmx/HelloWorld",
                dataType: "json",
                contentType: "application/json",
                success: function (msg) { alert("success: " + msg); },
                error: function (a, b, c) { alert(a + ' | ' + b + ' | ' + c); }
            });
            
        }

meintest du das so?

edit: ich habe auch diese zeile:

$.ajaxSetup({ type: 'POST', dataType: 'json', contentType: 'application/json', data: {} });

im script bereich eingefügt, wie in dem beispiel ... nützt aber auch nichts 😕

S
417 Beiträge seit 2008
vor 10 Jahren

Dann hilft nur Debuggen. Prüfe ob ein Request ankommt und es danach schief geht oder ob es schon beim Aufruf ein Problem gibt. Firebug oder ähnliches anwerfen und Response auslesen.
Was für einen Fehler bekommst du dann?

Gibt es eigentlich einen Grund wieso du nicht die Web API verwendest, wenn du eh schon mit MVC 4 arbeitest?

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 10 Jahren

also er springt nicht in den Haltepunkt beim dem WebService rein
bei der error methode im javascript bekommt parameter c ja auch den wert "Not Found"

in der Firebug Console findet man dies hier:> Fehlermeldung:

http://localhost:3208/DataBaseService.asmx/HelloWorld


[HttpException]: Der Controller für den Pfad "/DataBaseService.asmx/HelloWorld" wurde nicht gefunden oder implementiert IController nicht.
   bei System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
   bei System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
   bei System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
   bei System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
   bei System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state)
   bei System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
   bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Gibt es eigentlich einen Grund wieso du nicht die Web API verwendest, wenn du eh schon mit MVC 4 arbeitest?

naja ich hab grad mit dem ganzen thema angefangen und das mit dem webservice erschien mir zumindest leichter

16.835 Beiträge seit 2008
vor 10 Jahren

Es wäre gut, wenn Du Möglichkeiten der Technologien anhand von Tutorials und Blogs durchlesen würdest anstatt plan- und sinnlos irgendwas ausprobierst und dann mehr oder minder nach Web-Grundlagen fragst.

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 10 Jahren

Was soll das?
Ich habe mich mit dem WebService vieleicht für das eher suboptimale entschieden, kann schon sein ... aber willst du mir erzählen das du immer gleich den perfekten weg eingeschlagen hast? Gerade da ich mich mit der kompletten materie erst vertraut machen muss, da ich damit noch nicht gearbeitet habe

Und ich habe die ganze zeit tutorials gelesen zum WebService, da ich aber nun einfach nich mehr weiter wusste habe ich eben hier nachgefragt. Also bitte unterlasse es so zu tun, als würde ich einfach mit dem Gesicht auf meiner Tastatur rum rollen und hoffen das was bei raus kommt ...

16.835 Beiträge seit 2008
vor 10 Jahren

Ach Coooder.. das fängt schon beim Google Maps Thread an, dass Du offensichtlich die Trennung von Javascript und einer serverbasierten Anwendung wie ASP.NET MVC nicht verstanden hast; das liest man schon im Threadinhalt und der Fragestellung dessen.

Hier gehts gleich weiter: Dir ist WCF bekannt; hast Dir aber offensichtlich nicht mal die Möglichkeiten von ASP.NET MVC 4 durchgelesen.
Wenn Du asp.net/mvc auch nur ein mal aufgerufen und durchgelesen hättest, würden Dir WebAPIs was sagen: daher behaupte ich auch, dass Du einfach nur plan- und sinnlos rumstocherst.

Zum WCF Zeugs hier: die Fehlermeldungen sind eindeutig.
Ich denke auch in diesem Fall hast Du Dir nicht ein mal ein Tutorial oder ein entsprechendes Video angeschaut, sondern viel eher nach WCF gesucht und das erste Snippet verwendet.
Jedes "First Steps" Tutorial zeigt wie's funktioniert.

Wieso ich das behaupte? Weil sich das bei jQuery widerspiegelt:
Du zeigst hier einen Ajax-Verbindungsaufbau, der seit Version 1.6 als obsolete in der Dokumentation geführt ist. Aktuell sind wir bei Version 2.0.3

Dann noch die Sache mit der Datenbank und ASP.NET MVC: auch hier fehlen die völlig die Grundlagen.
Du hast einfach mal drauf los gearbeitet und kurz vor dem Ziel fällt Dir auf: hups, ich muss die Anwendung ja verteilen.

Sorry für den öffentlichen Rundumschlag aber musste ma gesagt werden.