php - 405 方法不允许 - PUT (PHP)
问题描述
我在向我的 API 发送 PUT 请求时遇到问题。我得到响应:“405 方法不允许。请求的方法 PUT 不允许用于此 URL。”
在我的 htaccess 中,我有:
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
在 php 文件中,我有:
<?php
header('Access-Control-Allow-Origin: *');
if (isset ($_GET['action']))
{
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS')
{
header('Content-Type: application/json');
header('Access-Control-Allow-Methods: POST, DELETE, PUT');
header('Access-Control-Max-Age: 3600');
header('Access-Control-Allow-Headers: origin,x-csrftoken,content-Type');
header('Access-Control-Allow-Credentials: true');
die();
}else
....
....
....
...
} else if ($_SERVER['REQUEST_METHOD'] == 'PUT')
if($action == 'update')
{
$authResp = Auth::autorize($db, isset($_COOKIE['tkn']) ? $_COOKIE['tkn'] : null);
if($authResp->getCode() == 200){
$roomResp = menu::update($db, $data);
$authResp->addToMessage($roomResp->getMessage());
}
echo $authResp->genResponse();
die();
}
我需要设置多少才能允许 PUT/DELETE 方法?
解决方案
问题不在于您的 PHP,而在于您的.htaccess
; 你有<Limit GET POST OPTIONS>
。这将请求限制为仅允许GET
,POST
或OPTIONS
。如果您还想允许PUT
and DELETE
,您需要将这些添加到允许的方法列表中:
<Limit GET POST OPTIONS PUT DELETE>
推荐阅读
- haskell - 在 Haskell 中变换一棵树
- firefox - 当我删除调试版本时,如何防止 Firefox 删除我的扩展数据?
- python - 如何自动使用 h2o automl 的非获胜模型的所有模型参数?
- nginx - 如何使用 nginx 将域代理到另一个域?
- java - 无法在 Firebase Java 中更新完整的子对象
- maven - 测试不使用 Maven 运行
- ios - iOS 在随机位置禁用 oneTimeCode 建议
- ios - VStack 不适合 ContentView SwiftUI
- python - python3.6和python3.7中相同请求对tor的状态差异
- c# - 从使用 List() 的另一个属性设置属性值