无法使用 GET 方法发送数据,但使用 POST

Can't send data with GET method but with POST

我正在 Php Slim 中构建 Rest API。 API 在本地主机上工作正常。现在我把它放在实时服务器上。问题是当我使用 GET 方法在 body 中发送数据时,Postman 显示错误:500 Internal Server Error. .但是将 GET 更改为 POST 时它工作正常。我是后端新手,所以不明白问题是什么。 API 的 index.php 文件位于 example.com/api/public/index.php 的子目录中,所以我在 .htaccess 中做了一些更改,但它不起作用。

.htaccess

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php73” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=[=11=]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /api/public/index.php [L,QSA]


# Don't listing directory
Options -Indexes
ErrorDocument 403 http://www.example.com/
# Follow symbolic links
Options +FollowSymLinks

# Default handler
DirectoryIndex index.php

# php -- END cPanel-generated handler, do not edit

我可以使用 POST 而不是 GET 还是有问题?

The issue is when I send data in body using GET method

看看specification:

A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request.

虽然可以让 一些 客户端(例如 Postman)发出带有正文的 HTTP GET 请求,并且可以让 一些 服务器从 HTTP GET 请求中读取正文,它确实完全锁定了一些其他客户端(例如 XMLHttpRequest 和 fetch 的浏览器 API)。

要么不使用 GET 请求,要么不使用请求正文。