2013-10-04 23 views
25

Próbuję wysłać połączenie za pomocą ajax, ale w Chrome jest to rosnący błąd, ale w firefoxie nie ma błędu. Ale wciąż nie może wywoływać tej metody. Próbowałem nagrać rozmowę w firebugu, ale w firebugie nie ma żądania połączenia. Dlatego nie ma błędów w Firefoksie.Załadowanie zasobu nie powiodło się: serwer odpowiedział stanem 500 (Błąd wewnętrznego serwera) w funkcji powiązania.

Index.chshtml kod jest poniżej

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); 
        } 

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

sposób kontroler

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

     return Json("Success"); 
    } 

Błąd chromu

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

Robisz post. Czy oznaczyłeś SaveColumnInfo jako HttpPost? – Fals

+0

Tak, próbowałem z HttpPost, ale bez powodzenia. Na innych stronach aplikacji mu używam tej samej metody wywołania ajaxowego bez atrybutu HttpPost i działa on dobrze, jeśli nie. – Haris

+0

Nie sądzę, że ../../GlobalSearch/SaveColumnInfo jest źle! Nie możesz wpisać tego rodzaju adresu URL!/GlobalSearch/SaveColumnInfo powinno działać! – Fals

Odpowiedz

39

500-c Od zwykle wskazywałby błąd na serwerze, a nie cokolwiek z twoim kodem. Niektóre myśli

  • Aby uzyskać więcej informacji, skontaktuj się z programistą serwera. Nie można uzyskać więcej informacji bezpośrednio.
  • Zweryfikuj swoje argumenty w wywołaniu (wartości). Poszukaj czegokolwiek, co mogłoby spowodować problem z procesem serwera. Proces ten nie powinien umrzeć i powinien zwrócić ci lepszy kod, ale błędy również się tam pojawiają.
  • Może być przerywany, tak jak w przypadku awarii bazy danych serwera. Może warto spróbować w innym czasie.
+1

Zmieniłem swoje wymyślne imiona, aby identyfikator został przekazany do "id", a mój działał. idź rysunek – JustJohn

+1

W moim przypadku kliknąłem błąd wyświetlany w konsoli, np. http://vuela.dev/api/calendar/create 500 (Internal Server Error). kliknięcie go, przeniesiono mnie na kartę Sieć, gdzie wyświetlało się różne pliki, ich statusy, rozmiary i wszystkie inne rzeczy. następnie kliknąłem na plik, który miał status 500 i pokazał mi szczegóły błędu, skąd wywnioskowałem, że konstruktor działa ze złymi referencjami. UWAGA: Używam Laravel 5.4 – Lahori

+1

Spędziłem 30 minut, aby dowiedzieć się tylko, że: ta nazwa danych w Ajaksie musi być taka sama, jak nazwa zmiennej, której używasz w kontrolerze. jeśli nie, określ go jako 'data: {columnindex: request}' – wolfQueen

Powiązane problemy