【问题标题】:405 Method Not Allowed - PUT (PHP)405 方法不允许 - PUT (PHP)
【发布时间】:2019-11-05 06:11:58
【问题描述】:

向我的 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 api .htaccess


    【解决方案1】:

    问题不在于您的 PHP,而在于您的 .htaccess;你有&lt;Limit GET POST OPTIONS&gt;限制请求允许GETPOSTOPTIONS。如果您还想允许PUTDELETE,则需要将它们添加到允许的方法列表中:

    &lt;Limit GET POST OPTIONS PUT DELETE&gt;

    【讨论】:

    • 是的,谢谢,但我改变了,仍然有同样的问题:/ 我可以在我的请求中看到标题:允许:HEAD、GET、POST、OPTIONS,但是为什么? htaccess 现在看起来不错
    • 更改后: 命令允许,拒绝全部允许 仍然有问题:/
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2021-12-07
    • 2019-10-28
    • 2016-08-06
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多