2016-10-13 7 views
0

Ich habe angular js Direktive von wo ich eine Funktion, die Ajax Post Call C# webmethod aufgerufen hat. Es istWebmethod nicht in Ajax Anruf

function test(json_object){ 
    $.ajax({ 
     type: "POST", 
     url: "/sites/Demo/_layouts/15/demo/demowebmethod.aspx/mywebmethod", 
     data: json_object, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: OnSuccess, 
     failure: function(response) { 
      alert(response.d); 
     } 
    });  
} 

function OnSuccess(response) { 
    alert(response.d); 
} 

gecallt nicht die Web-Methode trifft weder den Erfolg oder Misserfolg zu werden genannt, aber die Steuerung geht innerhalb test Funktion

app.directive("fileread", [function() { 
return { 
link: function ($scope, $elm, $attrs) { 
    $elm.on('change', function (changeEvent) { 
    var data = "some json data"; 
     test(data);   
     }); 
    }; 
    }; 
}]); 

Die Funktionen, die von der Richtlinie. Irgendwelche Hinweise, wo ich falsch liege.

+0

Was ist der Fehlercode in Ihrer Browserkonsole? –

+0

Die Funktion heißt 'test1', aber Sie rufen' test'. könnte es nicht sein, oder? – Hazonko

+0

@Hazonko wo siehst du test1? – KSib

Antwort

0

Fügen Sie dies Ihrem Ajax-Anruf hinzu. Es sollte Ihnen eine bessere Botschaft geben, um darauf zu reagieren.

error: function (request, status, error) { 
       alert('Error: ' + error); 
      } 
+0

Es gibt internen Server Fehler –

+0

Sind Sie sicher, dass der Pfad in der Ajax-Aufruf korrekt ist? Entweder ist der Pfad falsch, oder Sie müssen mehr Parameter übergeben, oder der Rückgabetyp ist anders als erwartet. –

+0

Richtig, jetzt wissen Sie, dass Ihr JS die Webmethode aufruft und die * Webmethode * (C# -Code) einen Fehler gibt. Debuggen Sie die Webmethode. –

1

Es gibt keinen failure Rückruf in $ Schnipsel:

failure: function(response) { 
    alert(response.d); 
} 

Änderung dies error: oder verwenden Sie das Versprechen

error: function(response) { 
    alert(response.d); 
} 

http://api.jquery.com/jquery.ajax/

Es ist möglich, dass es Fehler-ing aufgrund der webmethod, aber du siehst es nicht. Bestätigen Sie, indem Sie die URL zu etwas ändern, das eindeutig nicht existiert, zB ".../mywebmethodxxxxxxx"