JQuery Ajax Post приводит к 500 внутренняя ошибка сервера - PullRequest
71 голосов
/ 29 августа 2009

Я пытаюсь выполнить эту запись AJAX, но по какой-то причине я получаю ошибку сервера 500. Я вижу, что это хит точки останова в контроллере. Таким образом, проблема, кажется, на обратном вызове. Кто-нибудь?

$.ajax({
    type: "POST",
    url: "InlineNotes/Note.ashx?id=" + noteid,
    data: "{}",
    dataType: "json",

    success: function(data) {
        alert(data[1]);
    },
    error: function(data){
        alert("fail");
    }
});

Это строка, которая должна быть возвращена:

{status:'200', text: 'Something'}

Ответы [ 28 ]

1 голос
/ 16 июля 2013

У меня была эта проблема, потому что на странице, с которой я вызвал запись ajax, было EnableViewState = "false" и EnableViewStateMac = "false", но не вызываемая страница. Когда я поместил это на обеих страницах, все начало работать. Я подозревал это, когда увидел исключение MAC-адреса.

1 голос
/ 06 ноября 2018

Ваш код содержит dataType: json .

В этом случае jQuery оценивает ответ как JSON и возвращает объект JavaScript. Данные JSON анализируются строго. Любое искаженное JSON отклоняется и выдается ошибка разбора. Пустой ответ также отклоняется.

Сервер должен вернуть ответ null или {}.

1 голос
/ 03 мая 2018

Для меня ошибка была в php файле, в который я отправлял запрос. Ошибка в подключении к базе данных. После исправления кода php ошибка устранена.

1 голос
/ 26 сентября 2016

Я тоже сталкивался с такой же проблемой. Вот два способа, которыми я решил это: 1. Если вы используете какой-то фреймворк, убедитесь, что вы отправляете токен CSRF вместе с вызовом ajax Вот как будет выглядеть синтаксис для laravel -

<meta name="_token" content="{{ csrf_token() }}">

В вашем js-файле обязательно вызовите его перед отправкой вызова ajax

$.ajaxSetup({
            headers: {
                'X_CSRF-TOKEN' : $('meta[name="_token"]').attr('content')
            }
        });
  1. Другой способ решить эту проблему - изменить method с post на get
0 голосов
/ 27 ноября 2018

Я опоздал с этим, но у меня возникла эта проблема, и я узнал, что это была ошибка в моем PHP-коде (в моем случае синтаксис выбора для БД) Обычно эта ошибка 500 связана с использованием синтаксиса - по моему опыту. Другими словами: проблема «кадрового обеспечения»! : D

0 голосов
/ 20 января 2015

Ваши данные возвращаемой строки могут быть очень длинными.

<system.web>        
   <compilation debug="true" targetFramework="4.0" />
   <httpRuntime maxRequestLength="2147483647" />
</system.web>

Например:

  • 1 символ = 1 байт
  • 5 символов = 5 байт
  • "Хакки" = 5 байт
0 голосов
/ 15 октября 2015

У меня были похожие проблемы с кодом AJAX, который время от времени возвращает «500 внутренняя ошибка сервера». Я решил проблему, увеличив значения «fastCGI» RequestTimeout и ActivityTimeout.

0 голосов
/ 24 августа 2015

Используйте блок Try Catch на стороне сервера и в блоке catch передайте клиенту ошибку исключения. Это должно дать вам полезное сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...