如何解决无法使用 GET 方法发送数据,但使用 POST
我正在用 Php Slim 构建 Rest API。 API 在 localhost 上工作正常。现在我把它放在实时服务器上。问题是当我使用 GET
方法在正文中发送数据时,邮递员显示错误: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=$0
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
还是有问题?
解决方法
问题是当我使用 GET 方法在正文中发送数据时
GET 请求消息中的有效载荷没有定义的语义; 在 GET 请求上发送有效负载正文可能会导致一些现有的 拒绝请求的实现。
虽然可以让一些客户端(例如邮递员)发出带有正文的 HTTP GET 请求,并且可以让 一些 服务器读取正文从 HTTP GET 请求中,它确实完全锁定了一些其他客户端(例如 XMLHttpRequest 和 fetch 的浏览器 API)。
不要为此使用 GET 请求或不要使用请求正文。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。