Laravel: получение 405 на Azure для запросов DELETE через Axios - PullRequest
0 голосов
/ 18 февраля 2020

Я работаю над проектом Laravel уже некоторое время и, к сожалению, попала в ловушку, отправив запрос DELETE на рабочую версию, размещенную на Microsoft Azure. Я обнаружил, что проблема заключалась в том, что Azure по умолчанию запрещает УДАЛИТЬ запросы, на которые я был направлен: Как включить запросы PUT в Azure? . Однако я обновил файл web.config следующим образом: (Сервер PHP версия 7.3, 64-разрядная версия)

<configuration>
  <system.web>
    <customErrors mode="Off"/>
  </system.web>
  <system.webServer>
    <handlers>
      <remove name="PHP73_via_FastCGI" />
      <add name="PHP73_via_FastCGI" path="*.php" verb="GET, PUT, POST, HEAD, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, DELETE" modules="FastCgiModule" scriptProcessor="D:\Program Files\PHP\v7.3\php-cgi.exe" resourceType="Either" requireAccess="Script" />
    </handlers>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)/$" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
          <match url="^" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Я ранее пытался запустить этот доступ к D:\Program Files (x86), но, к сожалению, тоже не сработало. Я опубликовал весь файл web.config, потому что я не уверен, что некоторые из других добавленных настроек конфликтуют с попыткой включить DELETE.

Для справки вот маршрут, который называется:

Route::group(['middleware' => ['auth']], function($router) {
    Route::post('likes', 'LikesController@store');
    Route::delete('likes/{', 'LikesController@remove');
    Route::delete('likes/{like}', 'LikesController@remove');
});

Вызов LikesController@remove выполняется только $like->delete();, а затем возвращает комментарий без удаленного подобного.

Метод внутри компонента представления, который вызывает ax ios:

axios.post('/api/likes', {comment_id: this.comment.id}).then((response) => {
  this.comment = response.data;
}

У меня это нормально работает на моей локальной сборке, поэтому я не уверен, почему проблема сохраняется за пределами предоставленного исправления. Если есть что-то еще, пожалуйста, дайте мне знать, и я отредактирую сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...