Ajax отправка файла 500 ошибка
На всё это консоль браузера отвечает мне, что ошибка 500. Самое весёлое в том, что аналогичный код успешно работает при добавлении в другую базу пары логин-пароль.
P.s.: я дилетант в web-программировании (2 недели назад в моей жизни не было ни единой строчки на PHP или JavaScript), так что не падайте со стула во время прочтения.
ajax и Fatal error: Class '.' not found
Всем привет. На новой работе дали на поддержку сайт самописный. Написал свою функцию, при.
Ajax обрабатывает error, хотя данные верные
В общем бьюсь уже весь день. есть клиент с кодом $.ajax( "query.php", < type:'POST', .
Starting jQuery autocomplete immediately after my Ajax call to server
Прошу прощения, что задаю вопрос на английском. Русский язык понимаю плохо, поскольку сам из.
В курсе. Но, повторюсь, я не хочу перезагружать страницу.
За функцию addslashes() отдельное спасибо.
ОТВЕТЫ
Ответ 1
Я подозреваю, что серверный метод бросает исключение после прохождения точки останова. Используйте Firefox/Firebug или инструменты разработчика IE8, чтобы посмотреть на фактический ответ, который вы получаете с сервера. Если возникло исключение, вы получите YSOD html, который поможет вам понять, где искать.
Еще одно: ваше свойство данных должно быть <> not "<>", первый - пустой объект, а последний - строка, которая является недопустимой как параметр запроса. Еще лучше, просто оставьте это, если вы не передаете какие-либо данные.
Ответ 2
если кто-то использует фреймворк codeigniter, проблема может быть вызвана включенной конфигурацией защиты csrf.
Ответ 3
У меня была сама проблема, хотя я не мог найти причину этого в моем случае при изменении от POST до GET ошибка 500 проблемы исчезла!
Ответ 4
Это простой запрос Ajax Request для получения данных через запрос Ajax
Ответ 5
"Сервер столкнулся с неожиданным условием, которое помешало ему выполнить запрос".
Вам нужно отладить ваш сервер.
Ответ 6
Следующая отладка на стороне клиента позволила мне определить ошибку сервера
В обратном вызове $.ajax отобразите подробные сведения об ошибке на консоли
Это, по крайней мере, позволило мне просмотреть начальную ошибку сервера
"Запрос JSON был слишком большим для сериализации"
Это было разрешено в клиенте web.config
Однако запрос еще не удался. Но на этот раз с другой ошибкой, которую я теперь мог отлаживать на стороне сервера
"Request Entity слишком большой"
Это было разрешено путем добавления следующего к сервису web.config
Ответ 7
Ответ 8
Ответ 9
Я предлагаю вам приложить отладчик к процессу веб-сервера (при условии, что у вас есть доступ).
Одна странная вещь: вы делаете запрос POST на сервер, но вы не передаете никаких данных (все в строке запроса). Возможно, это должен быть запрос GET?
Вы также должны проверить правильность URL-адреса.
Ответ 10
Но я могу сказать, что "ошибка внутреннего сервера 500" - это ошибка с сервером, а не с клиентом, вы получили ошибку на стороне сервера script. Прокомментируйте закрытие кода закрытием и попробуйте запустить его снова, вы скоро узнаете, что вам не хватает персонажа.
Ответ 11
Вы также можете получить эту ошибку в VB, если вызываемая вами функция начинается с Public Shared Function, а не Public Function в веб-сервисе. (Как может случиться, если вы переместите или скопируйте функцию из класса). Еще одна вещь, на которую нужно следить.
Ответ 12
Можете ли вы опубликовать подпись своего метода, который должен принять этот пост?
Тогда мой javascript errorFunc выглядит так:
так что проверьте все это и опубликуйте подпись своего контроллера в случае, если часть проблемы
Ответ 13
Я обнаружил, что имею эту ошибку. У меня был перенаправлен перенаправление .htaccess в каталог. Ну, он перенаправляет аякс-призывы к курению ( $.post(../ajax.php) ), поэтому он не смог найти фактический файл (приводя к ошибке 500).
Я "исправил" его, поместив ajax.php в каталог (So .htaccess не повлиял).
Ответ 14
В моем случае это была простая проблема, но ее было сложно найти. У указателя страницы были неправильные атрибуты Inherits. Просто нужно включить верхний уровень, и это сработало.
Неверный код
Правильный код
Ответ 15
Я смог найти решение, используя отладчик Chrome (у меня нет Firebug или других сторонних инструментов)
- Перейдите на вкладку разработчика (CTRL + MAJ + I)
- Сеть > щелкните по неудачному запросу, в красном >Предварительный просмотр
Он показал мне, что у меня была проблема на сервере, когда я возвращал значение, которое было саморегуляцией.
Ответ 16
Я обнаружил, что это произошло в chrome, когда я сделал два ajax-запроса в обработчике jquery "при загрузке",
Я избежал этого, используя:
это предположительно ошибка Chrome и/или JQuery
Ответ 17
При использовании инфраструктуры CodeIgniter с включенной защитой CSRF загрузите следующую script на каждую страницу, где может произойти ajax POST:
Требуется: jQuery и плагин jQuery.cookie
Ответ 18
У меня была эта проблема, потому что на странице, с которой я назвал пост ajax, были EnableViewState="false" и EnableViewStateMac="false" , но не была названная страница.
Когда я разместил это на обеих страницах, все начало работать. Я подозревал это, когда увидел исключение MAC-адреса.
Ответ 19
Данные JSON, которые вы передаете на сервер, должны иметь то же имя, что и на клиентской стороне. Пример:
Если имя отличается, ex:
Вы получите эту ошибку.
Если вы не передаете данные, удалите атрибут данных из запроса AJAX.
Ответ 20
Ответ 21
Как уже упоминалось, я думаю, что ваши возвращаемые строки очень длинны. поэтому формат JSON был поврежден.
Там другой путь для этой проблемы. Вы должны изменить максимальный размер для данных JSON таким образом:
Откройте файл Web.Config и вставьте эти строки в раздел конфигурации
Ответ 22
Я также столкнулся с той же проблемой. Вот два способа, которыми я решил это - 1. Если вы используете какую-либо фреймворк, убедитесь, что вы также отправляете токен CSRF с вызовом ajax Вот как синтаксис будет выглядеть для laravel -
В вашем js файле обязательно вызовите это перед отправкой вызова ajax
- Другим способом его решения было бы изменить method от post до get
Ответ 23
Для меня ошибка была в php файле, в который я отправлял запрос. Ошибка была в соединении базы данных. После исправления кода php ошибка устранена.
Ответ 24
Ваш код содержит dataType: json.
В этом случае jQuery оценивает ответ как JSON и возвращает объект JavaScript. Данные JSON анализируются строго. Любой искаженный JSON отклоняется и выдается ошибка разбора. Пустой ответ также отклоняется.
Сервер должен вернуть ответ null или <> .
Ответ 25
Данные возвращаемой строки могут быть очень длинными.
Например:
- 1 Char= 1 Байт
- 5 Char= 5 байт
- "Hakki" = 5 байт
Ответ 26
И это моя версия:
Ответ 27
Ответ 28
У меня были аналогичные проблемы с кодом AJAX, который спорадически возвращает "внутреннюю ошибку сервера 500". Я решил проблему, увеличив значения "RequestTimeout" и "ActivityTimeout" "fastCGI".
Ответ 29
В моем случае проблема была вызвана нарушением ограничения целостности в таблице базы данных (дубликат записи).
Ответ 30
Я опаздываю на это, но у меня возникла эта проблема, и я узнал, что это была ошибка в моем PHP-коде (в моем случае синтаксис выбора для БД). Обычно эта ошибка 500 связана с использованием синтаксиса - по моему опыту. Другими словами: проблема "кадрового обеспечения"!: D
I am trying to perform this AJAX post but for some reason I am getting a server 500 error. I can see it hit break points in the controller. So the problem seems to be on the callback. Anyone?
This is the string that should be returned:
Yes.. I am using the jQuery.noConflicts(). The prefix is correct. Like I said. It makes the request.. but the error is returned.
Решение
Ошибка скорее в php скрипте. 500 - внутренняя ошибка сервера, т.е. пришел по адресу запрос, начал обрабатываться и сломался не выдав результат, а сообщив: 500 Internal Server Error.
К стыду моему вынужден признаться, что ошибка была в php-файле. Лишняя фигурная скобка после условия. А я предупреждал, что новичок.
P.s.: закройте тему, пожалуйста.
в js все нормально у вас, хоть и криво а на счет лишних фигурных скобок и прочих ошибок - рекомендую вам скачать программу
в JS сами догадаетесь как создать обработчик, а в конце обработчика напишите "event.preventDefault()", тогда обновления страници не будет.
Событие success и error в обычном submit (без AJAX)
Вопрос может и глупый но никак не могу найти ответ. Есть ли способ отследить получение ответа от.
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Расположил скрипт в /public_html,указал директорию для парсинга путей к картинкам.
Web Server + ADO = Internal Server Error 500
Делал почти по книжке: В C++ Builder 6 сделал новый Web Server (CGI), вставил.
Я пытаюсь выполнить эту запись AJAX, но по какой-то причине я получаю ошибку сервера 500. Я вижу, что это хит точки останова в контроллере. Таким образом, проблема, кажется, на обратном вызове. Кто-нибудь?
Это строка, которая должна быть возвращена:
32 Answers 32
I suspect that the server method is throwing an exception after it passes your breakpoint. Use Firefox/Firebug or the IE8 developer tools to look at the actual response you are getting from the server. If there has been an exception you'll get the YSOD html, which should help you figure out where to look.
One more thing -- your data property should be <> not "<>", the former is an empty object while the latter is a string that is invalid as a query parameter. Better yet, just leave it out if you aren't passing any data.
Your first sentence is misleading (implying the 500 error is occuring client-side). I nearly downvoted you for it before I read the answer more thoroughly. You might want to clarify a bit.
in case if someone using the codeigniter framework, the problem may be caused by the csrf protection config enabled.
I just went into this problem some minutes ago. your answer gave me the hint :) Maybe interesting for others to avoid this Adding this to the data solves the problem: security->get_csrf_token_name() ?> : 'security->get_csrf_hash() ?>'?=>
Thank you, got stuck on this in Bonfire and don't know CodeIgniter well enough yet to figure that out.
This is Ajax Request Simple Code To Fetch Data Through Ajax Request
I just had this problem myself, even though i couldn't find the reason for it in my case, when changing from POST to GET , the problem 500 error disappeared!
The following client side debug enabled me to determine the server error
In the $.ajax error call back, display the error detail to the console
This at least, enabled me to view the initial server error
“The JSON request was too large to be serialized”
This was resolved in the client web.config
However, the request still failed. But this time with a different error that I was now able to debug on the server side
“Request Entity too large”
This was resolved by adding the following to the service web.config
The configuration values may require further tuning, but at least it resolved the server errors caused by the ajax post.
I just got confused whether it need to be add on server web.config or client's web.config? Also Will you please explain how this code is working that will really help. I am printing the logs as you mentioned over here and it is saying the lingth of the string exceeds the value set of the maxJson length property.
"The server encountered an unexpected condition which prevented it from fulfilling the request."
You need to debug your server.
Thanks, I had this problem, in the action file I couldn't connect to database to store data so jQuery post().done() got an 500 error.
I suggest you attach a debugger to the web server process (assuming you have access).
One strange thing: You make a POST request to the server, but you do not pass any data (everything is in the query string). Perhaps it should be a GET request instead?
You should also double check that the URL is correct.
Have you tried doing the request from the browsers address bar? Do you get a 500 status then as well?
I just face this problem today. with this kind of error, you won't get any responses from server, therefore, it's very hard to locate the problem.
But I can tell you "500 internal server error" is error with server not client, you got an error in server side script. Comment out the code closure by closure and try to run it again, you'll soon find out you miss a character somewhere.
You can also get that error in VB if the function you're calling starts with Public Shared Function rather than Public Function in the webservice. (As might happen if you move or copy the function out of a class). Just another thing to watch for.
Can you post the signature of your method that is supposed to accept this post?
Additionally I get the same error message, possibly for a different reason. My YSOD talked about the dictionary not containing a value for the non-nullable value. The way I got the YSOD information was to put a breakpoint in the $.ajax function that handled an error return as follows:
Then my errorFunc javascript is like this:
so check all that, and post your controller method signature in case that's part of the issue
Я пытаюсь выполнить этот пост AJAX, но по какой-то причине я получаю ошибку сервера 500. Я вижу, что он попал в точку останова в контроллере. Так что проблема, похоже, в обратном вызове. Кто?
это строка, которая должна быть возвращена:
Я подозреваю, что метод сервера выдает исключение после того, как он проходит точку останова. Используйте Firefox / Firebug или инструменты разработчика IE8, чтобы посмотреть на фактический ответ, который вы получаете от сервера. Если было исключение, вы получите html YSOD, который должен помочь вам понять, где искать.
еще одна вещь -- ваше свойство данных должно быть <> не " <>", первое-пустой объект, а последнее-строка, которая недопустима в качестве параметра запроса. Еще лучше, просто оставьте его, если вы не передаете никаких данных.
в случае, если кто-то использует платформу codeigniter, проблема может быть вызвана включенной конфигурацией защиты csrf.
у меня просто была эта проблема, хотя я не мог найти причину этого в моем случае, при изменении с POST to GET проблема 500 ошибка исчезла!
Это Ajax запрос простой код для извлечения данных через Ajax запрос
"сервер столкнулся с неожиданным условием, которое он не может выполнить запрос."
вам нужно отладить ваш сервер.
следующая отладка на стороне клиента позволила мне определить ошибку сервера
В $.ajax error call back, отображение сведений об ошибке в консоль
Это, по крайней мере, позволило мне просмотреть первоначальная ошибка сервера
"запрос JSON был слишком большим для сериализации"
Это было разрешено в клиентской сети.config
запрос еще не удалось. Но на этот раз с другой ошибкой, которую я теперь смог отладить на стороне сервера
"слишком большой объект запроса"
Это был разрешено путем добавления следующего в веб-службу.config
Я предлагаю вам подключить отладчик к процессу веб-сервера (при условии, что у вас есть доступ).
одна странная вещь: вы делаете запрос POST на сервер, но не передаете никаких данных (все находится в строке запроса). Возможно, это должен быть запрос GET?
вы также должны дважды проверить правильность URL-адреса.
но я могу сказать вам, что "500 внутренняя ошибка сервера" - это ошибка с сервером, а не клиентом, у вас есть ошибка в сценарии на стороне сервера. Прокомментируйте закрытие кода закрытием и попробуйте запустить его снова, вы скоро узнаете, что вы пропустите символ где-то.
вы также можете получить эту ошибку в VB, если вызываемая функция начинается с Общие Функции, а не Государственную Функцию в веб-службе. (Что может произойти, если вы переместите или скопируете функцию из класса). Еще одна вещь, на которую стоит обратить внимание.
можете ли вы опубликовать подпись своего метода, который должен принять этот пост?
тогда мой javascript errorFunc выглядит так:
поэтому проверьте все это и опубликуйте подпись метода контроллера в случае, если это часть проблемы
у меня эта ошибка. Я.перенаправление htaccess настроено в каталоге. Ну, это перенаправляет ajax звонки на ofcourse ( $.post(../ajax.php) ), поэтому он не смог найти фактический файл (что привело к ошибке 500).
Я норм размещения Аякс.php в каталоге (So .htaccess не влияет).
Я смог найти решение, используя Chrome отладчик (у меня нет Firebug или других сторонних инструментов)
- перейдите на вкладку Разработчик (CTRL+MAJ+I)
- сеть > нажмите на запрос, который не удался, красным цветом >предварительный просмотр
Это показало мне, что у меня была проблема на сервере, когда я возвращал значение, которое само ссылалось.
в моем случае это была простая проблема, но ее трудно найти. Директива Page имела неправильные атрибуты наследования. Это просто нужно включить верхний уровень, и это сработало.
неправильный код
правильный код
Я обнаружил, что это произошло в chrome, когда я сделал два запроса ajax в обработчике jQuery "on load", т. е. как $(function() < $.Аякс. )(.. $.Аякс. )(.. >);
я избегал его, используя:
это предположительно хром и / или ошибка jquery
требуется: jQuery и jQuery.плагин куки
У меня была эта проблема, потому что страница, которую я назвал ajax post, имела EnableViewState="false" и EnableViewStateMac="false", но не вызывала страницу. Когда я поместил это на обеих страницах, все начало работать. Я подозревал это, когда увидел исключение MAC-адреса.
данные JSON, которые вы передаете на сервер, должны иметь то же имя, что и при формировании на стороне клиента. Ex:
Если имя отличается, например:
вы получите эту ошибку.
Если вы не передаете данные, удалите атрибут данных из AJAX-запроса.
Как уже упоминалось, я думаю, что ваши данные строки возврата очень длинные. таким образом, формат JSON был поврежден.
для этой проблемы есть другой способ. Вы должны изменить максимальный размер данных JSON следующим образом:
откройте веб.Файл конфигурации и вставьте эти строки в раздел конфигурации
я тоже столкнулся с той же проблемой. Вот два способа, с помощью которых я решил это- 1. Если вы используете некоторую структуру, убедитесь, что вы отправляете токен CSRF с вызовом ajax Вот как будет выглядеть синтаксис для laravel -
в вашем js-файле обязательно вызовите это перед отправкой вызова ajax
- другой способ решить это было бы изменить method С post to get
для меня ошибка была в php-файл, который я отправлял запрос. Ошибка в подключении к базе данных. После исправления кода php ошибка устранена.
возвращаемые строковые данные могут быть очень длинными.
например:
- 1 Чар = 1 Байт
- 5 Char = 5 Байт
- "Hakki" = 5 Байт
У меня были аналогичные проблемы с кодом AJAX, который спорадически возвращает "500 внутренних ошибок сервера". Я решил проблему, увеличив значения RequestTimeout и ActivityTimeout" fastCGI".
Я пытаюсь изучить AJAX для этого проекта на работе. У меня есть сайт, который загружает лекарства, которые принимает пациент.
Я прокомментировал всю мою рекурсию, поэтому она сузилась до этого tid-бит кода. (x отслеживает количество лекарств, поэтому я знаю, когда остановиться)
если требуется больше кода, просто дайте мне знать.
на 500 (internal server error) значит что-то пошло не так на стороне сервера. Это может быть несколько вещей, но я бы начал с проверки правильности URL и параметров. Кроме того, убедитесь, что все, что обрабатывает запрос, ожидает запрос как GET, а не POST.
Если у вас нет веской причины писать свой собственный код Ajax, вам будет намного лучше использовать библиотеку, которая обрабатывает взаимодействия Ajax для вас. jQuery является одним из вариантов.
Я думаю, что ваши данные строки возврата очень длинные. таким образом, формат JSON был поврежден. Вы должны изменить максимальный размер данных JSON следующим образом:
откройте веб.Файл конфигурации и вставьте эти строки в раздел конфигурации
Это может быть неправильный параметр для вашего вызова SOAP; посмотрите на формат параметра (ов) в разделе "данные:" json - это полезная нагрузка, которую вы передаете - параметр и данные, завернутые в формат JSON.
раскомментируйте следующую строку : [System.Web.Script.Services.ScriptService]
сервис начнет работать нормально.
Итак, войдите на сервер и отладьте оттуда.
я исправил ошибку, как это изменение места маршруты в маршруты.PHP, например у меня было что-то вроде этого:
и тогда я сделал так:
у меня была такая же ошибка. Оказывается, причиной было то, что метод back end ожидал разные данные json. В моем вызове Ajax у меня было что-то вроде этого:
где AjaxSettings было объявлено:
проблема заключалась в том, что сопоставление между моим вызовом ajax и моей конечной точкой не было одинаковым. Как только я изменил свой ajax звоните следующим, все получилось хорошо!
мне пришлось изменить переменную данных внутри вызова Ajax, чтобы точно соответствовать сигнатуре метода.
Читайте также: