Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Почему при отправке данных с помощью fetch, они не приходят в PHP?
@LYTK4

PHP не видит JSON (POST) запрос?

Отправляю запрос из JS:
// DEVELOPED BY https://github.com/lytk4dev

window.onload = function() {
    checkAdBlock();
};

const curl = 'http://localhost/check.php';
var xml = new XMLHttpRequest();   
xml.open("GET", url);


function checkAdBlock() {
    try {
        if (ads === true) {}
            ad = false;
            showInfoAdBlock(false);
    }
    catch (err) { 
        ad = true;
        showInfoAdBlock(true);
    }
};
 
function sendReq(method, url, body = null) {
    return new Promise((resolve, reject) => {
        const xml = new XMLHttpRequest();   
        xml.open(method, url)
        xml.responseType = 'json'

        xml.onload = () => {
            if (xml.status >= 400) {
                reject(xml.response)
            } else {
                resolve(xml.response)
            }
        }

        xml.onerror = () => {
            reject(xml.response)
        }

        xml.send(JSON.stringify(body))
    })
}

let sd;

function showInfoAdBlock(IsExistAdBlock) {
    if (IsExistAdBlock) {
       // alert("Блокировщик рекламы работает"); // Here add what happens if AdBlock is enabled 
        sendReq("POST", curl, {
            status: ad
        });
    }
    else if (!response.ok){ 
       // alert("Блокировщик рекламы работает"); // And here
       // document.body.innerHTML += `<pre>${sd}</pre>`;
    } 
    else if (!IsExistAdBlock) {  
       // alert("Блокировщик не работает"); // Don't touch this!
      // let sd = xmlhttp.send(JSON.stringify(jsonData, null, 4));
       // document.body.innerHTML += `<pre>${sd}</pre>`;
    }
};


В вкладке Network он есть, но PHP пишет: Notice: Undefined index: status in C:\xamppq\htdocs\index.php on line 9
{"ans":null}array(0) { }

Код PHP:
<?php
           $phpVar = $_POST["status"];
           $ans = array(
               "ans" => $phpVar
           );
           echo json_encode($ans);
           var_dump($_POST);
        ?>
  • Вопрос задан
  • 443 просмотра
Подписаться 1 Простой
Решения вопроса 1
@zoryamba
Php по дефолту парсит только FormData. Json нужно парсить вручную. Что-то типа
$json = json_decode(file_get_contents('php://input'));
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы