无法使用 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
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 请求,要么不使用请求正文。
我正在 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
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 请求,要么不使用请求正文。