2017-01-10 7 views
0

Ich erhalte einen 500 Internal Server Error, wenn ich versuche, einen Ajax .get-Aufruf zu verwenden. Ich habe überprüft, dass der Methodenname im get-Aufruf derselbe ist wie in der Route über der Methode. Ich bin mir nicht sicher, warum ich den Fehler 500 bekomme und wie ich ihn beheben kann.Erhalten eines 500-Fehler bei der Verwendung eines Ajax-Anrufs

Hier ist meine jQuery:

$('button').click(function() { 
    $('#New_Note').submit(function(event) { 
     event.preventDefault(); 
     var $form = $(this); 
     url = $form.attr("action"); 

     term = $form.find("input[name='Note']").val(); 
     console.log(url); 

     var posting = $.post(url, { Note: term }); 

     var get = $.get("getLastEntry");//This line causes the 500 error     
    }); 

Hier ist meine Methode in meinem CS-Datei

[HttpGet] 
[Route("getLastEntry")] 
public IActionResult GetLastEntry() 
{ 
     ViewBag.Notes = userFactory.GetLast(); 
     return View(); 
} 

Hier ist die GetLast Methode ist

public IEnumerable<Home> GetLast() 
{ 
      using (IDbConnection dbConnection = Connection) 
      { 
       dbConnection.Open(); 
       return dbConnection.Query<Home>("SELECT * FROM notes ORDER BY Id LIMIT 1"); 
      } 
} 
+3

Warum debuggen Sie es nicht? – Liam

+0

@Liam Wie kann ich einen Serverfehler debuggen? – Aaron

+0

Erstelle es lokal neu? Wir können es mit diesen Informationen nicht neu erstellen. So können Sie das am besten beheben – Liam

Antwort

1

Können Sie Folgendes versuchen?

+0

Ich bekomme eine erwartete ',' Fehler. Ich habe die mittleren Anführungszeichen in Ticks geändert und habe zu viele Zeichen im Zeichenliteral – Aaron

+0

Keine Notwendigkeit, Anführungszeichen zu ändern, nur sicherstellen, dass Sie alle Klammern richtig geschlossen haben –

1

500 Fehler sagt, dass Sie Routing ist in Ordnung. Sie müssen eine Fehlermeldung lesen, auf die der Server antwortet. Sie können es im Browser finden (Entwickler-Tools in der Regel von Hotkey F12 aufgerufen). Außerdem müssen Sie in der Datei Web.config den Eintrag <customErrors mode="Off" /> haben.

Fehler kann in nichts sein: Verbindungszeichenfolge, seltsame Syntax using (IDbConnection dbConnection = Connection) oder in .cshtml-Datei.

+0

Ich versuchte zuerst $ .get ("routeName") und ich auch 500 auf meinem Maschine. Es generiert "https: // localhost: 9457/Web/MyAction/routeName" und behandelt "routeName" als ID-Parameter. Es hängt davon ab, wie Ihre Routen definiert sind. –

+0

Sie richtig, aber trotzdem müssen wir nur wissen, Fehlermeldung zu geben, richtige Antwort – Anton

0

Sie sollten GET nicht verwenden, um Ajax-Anrufe zu tätigen. Ich habe Situationen gesehen, in denen schlechte Anfragen zwischengespeichert werden, und wird trotz des Codes weiterhin gut verarbeitet. Wenn Sie das Protokoll auf POST umstellen, wird entweder meine Antwort für Sie validiert oder ungültig gemacht.

+0

Immer noch den gleichen Fehler mit einem Beitrag – Aaron

Verwandte Themen