Nginx удаляет данные публикации с заголовком типа содержимого

Я делаю такие сообщения:

curl 'http://localhost/api.php' -H 'Content-Type: application/json' --data 'names=[{"name":"name"}]'

В результате удаляются данные сообщения.

Если я удаляю заголовок типа содержимого, например

curl 'http://localhost/api.php' --data 'names=[{"name":"name"}]'

Данные сообщения присутствуют.

Конфигурация Nginx состоит из следующего:

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/;

server_name _;

location ~ \.php$
{
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}   

location / {
    try_files $uri $uri/ =404;
    index index.html; 
    autoindex on;
}
}

Кто-нибудь знает, почему это так?

1
задан 22 December 2020 в 23:46
1 ответ

Я сомневаюсь, что это делает Нгинкс. Попробуйте

curl -H 'Content-Type: application/json' -d 'names=[{"name":"name"}]' 'http://localhost/api.php'

PHP действительно получает данные json, но единственным способом, которым я мог их извлечь, был

    $json = file_get_contents('php://input');
    var_dump($json);

, который дал

string(23) "names=[{"name":"name"}]"

Даже phpinfo() не показывал данные, только тип заголовков и размер контента.

Я забыл о GeekForGeeks howto

3
ответ дан 22 December 2020 в 21:27

Теги

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