Я уже некоторое время работаю над проектом Laravel и, к сожалению, столкнулся с проблемой при отправке запроса DELETE на производственную версию, размещенную в Microsoft Azure. Я обнаружил, что проблема в том, что Azure по умолчанию отклоняет запросы DELETE, на которые я был направлен: Как включить запросы 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();
, а затем возвращает комментарий без удаленного лайка.
Метод внутри компонента представления, который вызывает axios:
axios.post('/api/likes', {comment_id: this.comment.id}).then((response) => {
this.comment = response.data;
}
У меня это отлично работает в моей локальной сборке, поэтому я не уверен, почему проблема сохраняется после предоставленного исправления. Если есть что-то еще, что нужно, пожалуйста, дайте мне знать, и я отредактирую пост.