所有ajax请求均失败,并显示403 Forbidden错误。是由于htaccess。将其托管在服务器上后出现此问题。我已如下更改.htaccess。
<IfModule mod_rewrite.c>
AddHandler application/x-httpd-php72 .php
RewriteEngine On
# Removes index.php from ExpressionEngine URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>
我在public_html和根目录的其他文件夹中有公共文件。
我在路径API \ MyContorller和路由中拥有文件
Route::apiResources(['post' => 'API\MyContorller ]);
我在XHR请求(即Ajax呼叫放置请求)中遇到此问题
我正在调用update方法来更新vue组件中的表
updateQuiz(){
this.form.put('/api/chapter/'+this.$route.params.id + '/quiz/' + this.form.id);
}
答案 0 :(得分:0)
如果您正在使用将Web服务器映射到根目录的主机,则htaccess文件应包含重定向到public / index.php文件的请求 例如
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
答案 1 :(得分:0)
记住请求中的CSRF令牌。
如果您使用的是PUT / DELETE方法,则可以将其转换为
{
method: 'POST',
data: { _method: 'PUT', _token: token },
}
答案 2 :(得分:0)
如果有人遇到这个麻烦。这是将以下代码添加到公用文件夹中的htaccess文件中的解决方案
<Limit GET POST PUT OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST PUT OPTIONS>
Require all denied
</LimitExcept>
答案 3 :(得分:0)
我遇到了类似的问题,结果证明之前没有执行 git init
是导致此问题的真正原因。如果您已经将项目挂钩到 GitHub 存储库,则无关紧要。确保在开始时执行 git init
,然后在提交和推送之前执行 git add .