@justifycontent

Почему данные не отсылаются на сервер?

const btn = document.querySelector('button');

const obj = {
    name: 'John',
    phone: +777723793,
    street: 'Central',
};

btn.addEventListener('click', () => {
    const xhr = new XMLHttpRequest();
    xhr.open('POST', 'serv.php');
    xhr.setRequestHeader("Content-type", "application/json");
    const data = JSON.stringify(obj);
    console.log(data);
    xhr.send(data);

    xhr.addEventListener('load', () => {
        console.log(xhr.response);
    });
});
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
PHP лучше работает с объектом типа FormData. Просто преобразуйте свой объект в него. И заголовок можно убрать.
const formData = new FormData();
for (const key in obj) {
    formData.append(key, obj[key]);
}
...
xhr.send(formData);

В том случае, если сервер не будет получать данные, можете попробовать добавить следующий код:
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

А ещё можно воспользоваться fetch.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы