我的问题似乎与$_POST 为空类似。Nginx OSx, $_POST 在 nginx 中为空,$_GET 已填充但 $_REQUEST 为空,但是我找不到适合我的解决方案。
长话短说,我无法将我的 POST 请求发送到server.php我的服务器上命名的文件。
让我们假设 myserver.php只包含以下内容:
<?php var_dump($_REQUEST);
我的sites-available/domain.tld文件包含以下内容:
server {
root /var/www/domain.tld/current/dist;
index index.html index.htm;
server_name domain.tld;
location / {
try_files $uri $uri/ index.php?$query_string =404;
}
location ~ \.php$ {
#limit_except POST {
# allow 127.0.0.1;
# deny all;
#}
#if ( $request_method !~ ^POST$ ) {
# return 405;
#}
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
#fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REQUEST_METHOD $echo_request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REQUEST_BODY $request_body;
fastcgi_param QUERY_STRING $query_string;
}
location ~ /\.ht {
deny all;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name www.domain.tld;
return 301 $scheme://domain.tld$request_uri;
}
无论我提出什么“POST”请求,server.php都不会发送任何参数。
输出server.php将是array(0) {}
一些其他信息:
请求是在请求 URL 上进行的: https://domain.tld/server.php
请求方式: POST
状态代码: 200 OK
发送的 GET 请求https://domain.tld/server.php?foo=bar
将向我显示发送的正确foo
变量,其值为bar
如果需要,我可以提供有关请求本身的详细信息。(axios
在vue
应用程序中使用)。
请指教...
蛊毒传说