我在服务器上上传了一个laravel项目; 当我运行所有 ajax post request 请求时,像这样运行:
Request URL: http://example.com/user/register/
Request Method: POST
Status Code: 301 Moved Permanently
然后运行:
Request URL: http://example.com/user/register
Request Method: GET
Status Code: 500 Internal Server Error (from disk cache)
Post方法改为get方法并返回错误; 我该如何解决这个问题?!
我尝试
php artisan cache:clear php artisan config:clear php artisan view:clear
但也返回错误
我找到了答案。放在这里是为了帮助其他人。 我花了很多时间。问题就这么简单。 我只是从每个帖子操作的网址末尾删除反斜杠。
例如
/user/register/
必须更改为/user/register
:|
并且每个页面的浏览器缓存都必须清除。
就我而言,它从
http
重定向到 https
确保您的最终域具有准确的域标头。
检查您的域名是否位于
http
或 https
上,并将其与请求源相匹配,例如 POSTMAN 请求或浏览器请求。
在我上传文件的情况下,我的路线与公共目录相同 -> Route::POST('upload/data', [UploadDataController::class, 'upload'])->name('uploadData');
在我的公共文件夹中: 公共/上传/数据
所以我将路线更改为upload/uploadData,它完全没问题!
我正在使用 Laravel 9
转到 public>.htaccess 并注释掉“如果不是文件夹则重定向尾部斜杠...”部分,如下所示:
# Redirect Trailing Slashes If Not A Folder...
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_URI} (.+)/$
# RewriteRule ^ %1 [L,R=301]
然后:
php artisan cache:clear
php artisan config:clear
php artisan optimize
并重新启动服务器。
它对我有用。