2013-10-04 3 views
25

Ich versuche, einen Anruf mit Ajax zu senden, aber in Chrome steigt der Fehler, aber in Firefox gibt es keinen Fehler. Aber es kann immer noch nicht die Methode aufrufen. Ich habe versucht, meinen Anruf in Firebug aufzuzeichnen, aber es gibt keine Anrufanforderung in Firebug. Das ist der Grund, warum es keinen Fehler in Firefox gibt.Ressource konnte nicht geladen werden: Der Server reagierte mit dem Status 500 (Interner Serverfehler) in Bind-Funktion

Index.chshtml Code ist unten

function onLoad(e) { 

    var grid = $(this).data("tGrid"); 
    //bind to the context menu of the Grid's header 
    event.preventDefault(); 
    $(this).find(".t-grid-header").bind('contextmenu', function (e) { 
     //wait for the menu to be generated 
     setTimeout(function() { 
      // bind to the checkboxes change event. The context menu has ID in the format "GridName" + "_contextmenu" 
      $('#globalsearchgrid_contextMenu :checkbox').change(function() { 
       debugger; 
       var $checkbox = $(this); 
       // the checked state will determine if the column has been shown or hidden 
       var checked = $(this).is(":checked"); 
       // get the index and the corresponding column from the Grid's column collection 
       var columnIndex = $(this).data("field"); 

       var request = "{'columnIndex':'" + columnIndex + "'value':'" + checked + "'}"; 
       $.ajax({ 
        type: "POST", 
        url: "../../GlobalSearch/SaveColumnInfo", 
        data: request, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (msg) { }, 
        error: function (xhr, status, error) { 
         alert(error.responseTextss); 
        } 

       }); 
      }); 
     }); 
    }); 
} 

Controller-Methode

public JsonResult SaveColumnInfo(string columnIndex, string value) 
    { 
     CookieHelper helper=new CookieHelper(); 
     helper.UpdateCookie(int.Parse(columnIndex), value.ToString()); 

     return Json("Success"); 
    } 

Fehler in Chrom

POST http://localhost:3577/GlobalSearch/SaveColumnInfo 500 (Internal Server Error) 
    jQuery.ajaxTransport.send 
    jQuery.extend.ajax 
    (anonymous function) 
    jQuery.event.handle 
    jQuery.event.add.elemData.handle.eventHandle 
+0

Sie machen einen Beitrag. Haben Sie SaveColumnInfo als HttpPost markiert? – Fals

+0

Ja, ich habe es mit HttpPost versucht, aber keinen Erfolg. In anderen Seiten der mu-Anwendung verwende ich die gleiche Ajax-Aufruf-Methode ohne HttpPost-Attribut und funktioniert, wenn es gut ist. – Haris

+0

Ich denke nicht, ../../GlobalSearch/SaveColumnInfo ist falsch! Du kannst diese Art von URL nicht eingeben!/GlobalSearch/SaveColumnInfo sollte funktionieren! – Fals

Antwort

39

Die 500c Ode würde normalerweise einen Fehler auf dem Server anzeigen, nichts mit Ihrem Code. Einige Gedanken

  • Sprechen Sie mit dem Server-Entwickler für weitere Informationen. Sie können nicht mehr Informationen direkt erhalten.
  • Überprüfen Sie Ihre Argumente in den Aufruf (Werte). Suchen Sie nach etwas, von dem Sie glauben, dass es für den Serverprozess ein Problem verursachen könnte. Der Prozess sollte nicht absterben und sollte Ihnen einen besseren Code zurückgeben, aber Bugs passieren auch dort.
  • Kann intermittierend sein, wie wenn die Server-Datenbank ausfällt. Vielleicht lohnt es sich, es zu einem anderen Zeitpunkt zu versuchen.
+1

Ich änderte meine Phantasie Namen für ID wurde nur an "id" übergeben und meins arbeitete. go figure – JustJohn

+1

In meinem Fall habe ich auf den Fehler geklickt, der in der Konsole angezeigt wurde, d. h. http://vuela.dev/api/calendar/create 500 (Interner Serverfehler). Wenn ich darauf klickte, wurde ich zum Tab "Netzwerk" geleitet, wo verschiedene Dateien, deren Status, Größen und all diese Dinge angezeigt wurden. dann klickte ich auf eine Datei, die 500 Status hatte und es zeigte mir Fehlerdetails von wo ich dachte, dass ein Konstruktor mit schlechten Anmeldeinformationen ausgeführt wurde. HINWEIS: Ich benutze Laravel 5.4 – Lahori

+1

Verbrachte 30 Minuten mit diesem um nur herauszufinden, dass: dieser Datenname im Ajax, muss identisch sein mit dem Variablennamen, den Sie in Ihrem Controller verwenden. wenn es nicht wie 'data: {columnindex: request}' spezifiziert wird – wolfQueen

Verwandte Themen