1 votes

Nginx supprime les données de publication avec l'en-tête de type de contenu

Je fais des publications comme celle-ci :

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

Ce qui entraîne la suppression des données de la publication.

Si je supprime l'en-tête de type de contenu, par exemple

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

Les données de la publication sont présentes.

La configuration Nginx se compose de ceci:

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;
}
}

Est-ce que quelqu'un a un aperçu de la raison de cela?

3voto

Gerard H. Pille Points 2424

Je doute que ce soit le fait de Nginx. Essayez

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

PHP reçoit bien les données JSON, mais la seule façon dont j'ai pu les récupérer était

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

ce qui donnait

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

Même phpinfo() ne montrait pas les données, seulement le type de headers et la taille du contenu.

J'avais oublié à propos de GeekForGeeks howto

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X