2009-05-28 16 views
2

Kann jemand helfen? Ich habe ein Problem mit dem Aufrufen eines asp.net Webservice von jquery .. eigentlich denke ich es vielleicht jquery ... wie ich einen Breakpoint habe und es nicht im Webservice ankommt ..Jquery Ajax Aufruf an Webservice schlägt fehl

Hier ist meine jquery, die Webservice-Methode akzeptiert zwei Parameter ...

Also ich Setup ein einfacher Test in 7 und 7 passieren .. ich mit dem Wort „Test“ auch versucht, zu ersetzen und es funktioniert nicht ..

Grundsätzlich landet in der Fehlerfunktion, die "sorry error happes" anzeigt, aber der Fehler ist nicht definiert.

jQuery.ajax({ 
      type: 'POST' 
      , url: 'CallService.asmx/TempCanMakeCall' 
      , contentType: 'application/json; charset=utf-8' 
      , dataType: "json" 
      , data: "{'reservationNum':'7','completedReservationNum':'7'}" 
      , success: function(data, status) { 
       alert(data); 
      } 
      , error: function(xmlHttpRequest, status, err) { 
       alert('Sorry! Error happens.' + err); 
      } 
    } 
     ); 

Hier ist die asp.net Webservice

[WebMethod()] 
    public bool TempCanMakeCall(string reservationNum, string completedReservationNum) 
    { 

      return true; 
    } 

Antwort

2

xmlHttpRequest.responseText war schon immer mein goto gewesen, wenn sie mit jQuery AJAX-Fehler handelt.

Versuchen Sie, Ihre ASP.NET-Funktion statisch zu machen:

[WebMethod()] 
public static bool TempCanMakeCall(string reservationNum, string completedReservationNum) 
{ 

     return true; 
} 

Beachten Sie auch, dass der zurückgegebene JSON-Wert in einem Objekt ‚d‘ genannt verkapselt ist Ihr Rückgabewert bei Erfolg anzuzeigen (ASP.NET spezifisch.) , müssten Sie dies tun:

success: function(data, status) { 
      alert(data.d); 
     } 
+0

Alles funktioniert jetzt ein Genuss! –

1

Die Jquery Ajax-Aufruf sieht gut aus. Ich denke, Sie müssen sicherstellen, dass der Pfad zu "CallService.asmx" korrekt ist. So wie es jetzt ist, werde ich nur funktionieren, wenn sich die Datei, die den jQuery-Aufruf durchführt, im selben virtuellen Verzeichnis wie der ASMX befindet.

0

In Ihrer Fehlerrückruffunktion konnten Sie 'xmlHttpRequest.status' überprüfen, um den vom Server zurückgegebenen http-Code zu erhalten. Dies kann Ihnen einen weiteren Hinweis geben. Wenn ichiban oben richtig ist, sollte es ein 404 sein.

0

Sie können die xmlHttpRequest.responseText Eigenschaft überprüfen. Der Antworttext ist sehr wahrscheinlich ein HTML-Dokument, das vom Server zurückgegeben wird und den Grund für den Fehler enthält.

Wenn Sie Visual Studio verwenden, können Sie auch das Skriptdebuggen in Internet Explorer aktivieren und das folgende Schlüsselwort in Ihre Fehlerfunktion einfügen: debugger. Der Browser sieht dies als einen Haltepunkt und ruft einen Debugger auf (der Visual Studio sein sollte). Jetzt können Sie den gesamten Inhalt der xmlHttpRequest Instanz überprüfen.

Aus Gründen der Übersichtlichkeit Ihre Fehlerfunktion wird dann wie folgt aussehen:

function(xmlHttpRequest, status, err) 
{ 
    debugger; 
    ...rest of your function... 
} 
Verwandte Themen