2009-09-09 10 views
16

Próbuję zaimplementować protokół REST i zrealizowałem próbę debugowania, że ​​mój serwer WWW blokuje żądanie PUT.Dlaczego moje oprogramowanie serwera sieciowego nie zezwala na żądania PUT i DELETE?

Ja testowałem i potwierdził to dalsze uruchamiając:

curl -X PUT http://www.mywebserver.com/testpage 

która dla mojego serwera WWW daje powrotem 403 - Forbidden błąd.

To samo dzieje się z DELETE, gdzie co do POST i GET wszystko jest w porządku.

Zastanawiam się, czy jest to częsty problem, który spotykają tych, którzy używają REST i jakie mogą być zmiany w pracy?

Czy mogę dokonać prostej zmiany w pliku .htaccess? Czy muszę zmodyfikować protokół, aby ustawić ukrytą zmienną "_method" w ciągu zapytania POST?

Odpowiedz

54

Często serwery WWW zostanie skonfigurowany do blokowania nic oprócz GET i POST od 99% czasu oni wszyscy są potrzebne i nie było problemów w przeszłości z aplikacjami przyjmując wnioski były jednym z tych dwóch .

Nie mów, który serwer jest, ale, na przykład, można powiedzieć, Apache, który metody pozwalające z dyrektywą:

np

<Limit POST PUT DELETE> 
    Require valid-user 
</Limit> 

Brzmi to może trochę pomocny sysadmin wykorzystał to do blokowania non GET/POST

można spróbować .htaccess z

<Limit GET POST PUT DELETE> 
    Allow from all 
</Limit> 

(Nie jestem ekspertem od Apache, może to nie być dokładnie poprawne)

+0

Dodam, że działa to, nawet jeśli nie możesz znaleźć * gdzie * te metody są wyłączone. - ahem, właśnie go znalazłem, w Debianie jest w userdir.conf. – bigstones

+0

gdzie powinienem umieścić plik '.htaccess'? –

Powiązane problemy