Иногда вызов ajax изменяется с POST на GET

У меня есть страница с вызовом ajax, основанная на выборе пользователем. В некоторых случаях, хотя он указан как POST, он изменяется на GET; в результате код на вызываемой странице выходит из строя.

EDIT: Хотя $ _SERVER ['REQUEST_METHOD'] говорит мне, что это GET, на странице ответов переменная $ _GET пуста, как и переменная $ _POST. (Я надеялся, что смогу обойти проблему, захватив параметры из $ _GET вместо этого.)

Вот соответствующая часть вызова ajax:

var filters = getFilters(); var fnargs = "GetArticles|" + filters ; $.ajax({ url: 'retrievedata.php', type: "POST", async:true, data: {"functionname":"getpapers", "arguments":fnargs}, dataType: "JSON", 

За ним следуют разделы успеха и ошибок.

Функция getFilters создает строку с разделителями-запятыми, содержащую 3 коротких строки. Любой из них или все они могут быть пустыми. При заполнении каждый представляет собой список целых чисел, разделенный запятыми. Вот некоторые примеры:

 '1','3,6','2015' '','','' '1','','' 

В каждом случае вкладка «Сеть» веб-консоли Firefox показывает мне, что для вызова были собраны правильные параметры и, если на то пошло, это POST. Но я добавил проверку $ _SERVER ['REQUEST_METHOD'] в retrievedata.php (вызываемая страница), и я обнаружил, что некоторое время POST стал GET.

Это происходит последовательно в том смысле, что один и тот же результат getFilters всегда обрабатывается одинаково. Но помимо этого единственная согласованность, которую я могу найти, заключается в том, что если третья строка заполнена, она всегда работает. Вот некоторые случаи, когда он работает:

 '','','1998' '','','1998,2008' '','1','' '','2,1','' '','2','' '1','','1999' '1','1','1999' '1','1','' '1,3','1','' '3','','' 

Вот некоторые из них: GET:

 '','','' '','3,1','' '','2,3','' '','3','' '1','','' '1,3','','' 

Вероятно, следует отметить, что я поставил исходную проблему при вызове ajax: Иногда _POST пуст . Благодаря комментатору, я понял, что изменение GET стало ключевым вопросом.

Кроме того, стоит добавить, что у меня есть другая страница с практически идентичным вызовом, за исключением того, что ее версия getFilters объединяет только две строки, разделенные запятыми (и первым компонентом fnargs является «GetPapers», а не «GetArticles». Эта страница всегда делает правый вызов.