JQuery Mobile POST данные пустые в $ POST


Я столкнулся с проблемой с jQuery Mobile (новым для меня) и AJAX-вызовом. Я использую следующий код:

$.ajax({
            type: "POST",
            url: "http://**correct url**/post/todoitem",
            beforeSend: addHeaders,
            dataType: "json",
            contentType: "application/json",
            data: { "todoitem":"test" }, // this is just as a test
            success: function(result) {
                alert("Success: " + JSON.stringify(result));
            },
            error: function() {
                alert("Error: " + JSON.stringify(arguments));
            }
        });

При выполнении этого он вызывает PHP-скрипт, где мне нужны данные из todoitem, поэтому в данном случае строка "text" (в конце концов, несколько переменных должны быть отправлены, но сейчас я просто использую один параметр для простоты).

Мой PHP код выглядит так (ТАКЖЕ Только для тестирования):

echo json_encode($_POST));

Результат: ничего, ноль. В $_POST, где, кажется, быть пустым. Я искал и пробовал много вещей, но большинство ответов (даже здесь, на stackoverflow) касаются форм, и люди говорят, что мне нужно сериализовать содержимое формы. Однако я вообще не использую форму.

Я тоже пытался

data: JSON.stringify({ "todoitem" : "test" })

Как некоторые предположили, но это тоже не сработало. Я знаю, что данные передаются из - за этого маленького PHP-Хака, который я попробовал:

echo file_get_contents('php://input');

Это точно показывает данные: todoitem = test. Так где же все это идет не так? Я работаю над этим. это уже несколько дней! Thnx заранее

1 2

1 ответ:

Проблема в этой части вашего кода:

contentType: "application/json",`

Удаление этой строки должно сделать заголовок sent Content-Type по умолчанию application/x-www-form-urlencoded, и PHP декодирует запрос в $_POST.