Saya mencoba membuat RESTFul API di server saya menggunakan PHP. Tidak ada masalah dengan permintaan GET atau POST, tetapi saya tidak bisa membuat permintaan PUT atau DELETE berfungsi.

Pada awalnya, saya mencoba tanpa mengonfigurasi Apache: yang saya dapatkan hanyalah error 403 Unauthorized. Lalu saya menggunakan Batas:

<Limit GET HEAD POST PUT DELETE OPTIONS>
  Require all granted
</Limit>

Saya mendapatkan kesalahan 405 Metode Tidak Diizinkan.

Dari sini, saya sudah mencoba beberapa konfigurasi (AllowMethods, ...) tetapi masih mendapatkan kesalahan 405. Ketika saya mengaktifkan log Apache tingkat atas, Ini menunjukkan semuanya baik-baik saja, tetapi masih mengembalikan kode 405:

[authz_core:debug] [pid 43259] mod_authz_core.c(817): AH01626: authorization result of Require all granted: granted
[authz_core:debug] [pid 43259] mod_authz_core.c(817): AH01626: authorization result of <RequireAny>: granted
[http:trace3] [pid 43259] http_filters.c(1125): Response sent with status 405, headers:
[http:trace5] [pid 43259] http_filters.c(1134):   Date: Thu, 06 May 2021 06:55:24 GMT
[http:trace5] [pid 43259] http_filters.c(1137):   Server: Apache/2.4.41 (Ubuntu)
[http:trace4] [pid 43259] http_filters.c(955):   Allow: GET,POST,OPTIONS,HEAD
[http:trace4] [pid 43259] http_filters.c(955):   Content-Length: 306
[http:trace4] [pid 43259] http_filters.c(955):   Content-Type: text/html; charset=iso-8859-1

Saya membaca terkadang aplikasi web server seperti Jira dapat menyebabkan ini, tetapi saya hanya menginstal PhpMyAdmin.

Bagaimana saya bisa menggunakan permintaan PUT atau DELETE?

CATATAN: Apache/2.4.41 (Ubuntu)

0
darkelfe 6 Mei 2021, 10:35

1 menjawab

Jawaban Terbaik

Tetap.

Konfigurasi Apache2 global /etc/Apache2/mods-enabled/userdir.conf mendefinisikan aturan berikut:

<Limit GET POST OPTIONS>
  Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
  Require all denied
</LimitExcept >

Saya tidak yakin mengapa <Limit> diabaikan sebagian di .htaccess (kesalahan 405 bukannya 403 saat aktif) tetapi berfungsi jika diberikan semua tanpa <Limit>.

0
darkelfe 12 Mei 2021, 16:23