Объект JavaScript неправильно отправляется в серверную часть

При попытке Почта объекта JS с кодом от jQuery 2.1.x до PHP 7.1 серверная часть PHP получает пустой объект со следующим кодом:

JS:

$("#newTabLink").click(function(e) {
      ntn++;
      console.info('ntn = ' + ntn + ' / id =' + id);
      id++;
      var tabData = new Object();
      var tc = $('#tabs').children().length;
      console.info('tc = ' + tc)
      tabData.label = 'New Tab ' + ntn;
      tabData.pos = tc;
      $.ajax({
        url: 'services/save_obj.php',
        type: 'POST',
        data: JSON.stringify(tabData),
        async: true,
        dataType: 'json',
        cache: false,
        contentType: "application/json; charset=utf-8",
        encode: true,

        success: function(response) {
          if (response.success == true) {
            id = response.id;
          } else if (response.success == false) {
            alert('Aww, something went wrong!');
          }
        }
        });
    });
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

сервисы / save_obj.php:

if (isset($_POST)) {
    $strvalue = filter_input(INPUT_POST, 'label', FILTER_SANITIZE_STRING);
    $user_id = filter_input(INPUT_POST, 'objsay', FILTER_VALIDATE_INT);
    $lang = filter_input(INPUT_POST, 'lng', FILTER_SANITIZE_STRING);
    $location = filter_input(INPUT_POST, 'loc', FILTER_SANITIZE_STRING);
    $position = filter_input(INPUT_POST, 'pos', FILTER_SANITIZE_STRING);

    var_dump($_POST);
}

Почесываю голову, пытаясь понять, что я здесь делаю не так. Любые идеи?

Попробуйте заменить data: JSON.stringify(tabData), на data: tabData,

Zenoo 16.03.2018 10:31

И используйте echo json_encode($_POST);

Rohan Kumar 16.03.2018 10:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы отправляете данные JSON из внешнего приложения, вы можете найти свои данные в php-скрипте, используя php: // input.

Пример:

услуги / save_obj.php

$input = file_get_contents('php://input');
if (!empty($input)){
   $input = json_decode($input, true);
   // ... some logic
}

Вы можете использовать глобальный $ _POST, только с данными формы.

Другие вопросы по теме