Request POST mi vypisuje chybu 405 Method Not Allowed

Vyřešeno1.14K zhlédnutíZákaznická administraceaccesslog htaccess POST
0

Dobrý den, v Laravel aplikácii mám vytvorený testovací REST API a POST request, ktorý má vrátiť hodnotu „test“. Testujem to na lokálnom webservri Apache (WAMP) a funguje to, ale na wedos webhostingu (POST: bigoo.eu/subdom/API/public/index.php/api/post) mi vypisuje chybu „405 Method Not Allowed“.

Pravdepodobne je to problém v nastaveniach v „.htaccess“, ktorý mám aktuálne nastavený takto:

RewriteEngine On
# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]
# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Prosím o pomoc, ako (a čo?) nastaviť aby fungoval POST request.

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
JŠ255861 Vybral nejlepší odpověď 19. 10. 2021
1

Zdravím,

s Laravel nemám zkušenosti, ale vypadá to že to tam neposíláte přes POST.

Zkusil jsem tu URL dát do https://reqbin.com/ a poslat tam něco přes POST a normálně to projde. Respektive skončí na chybě 500.

ErrorException: Undefined index: test in file /data/web/virtuals/107149/virtual/www/subdom/API/app/Http/Controllers/API/RegisterController.php on line 20

To samé vrátil i jiný online nástroj. Na GET vrací 405. Zkuste to poslat přes POST normálně z formuláře.

Role: Zákazník+ Web: https://404m.com Vizitka: Neprogramuj dnes, co nemůžeš debugovat zítra.
JŠ255861 Vybral nejlepší odpověď 19. 10. 2021
0

Nefunguje žiadny route typu POST (na lokále mi to beží). Tu je najjednoduchší z nich (písané v Laravel, ver.7):

súbor route-ov „api.php“:

/* testovacie routy: */
Route::get('info','API\RegisterController@info');
Route::post('post','API\RegisterController@post');

súbor kontrolér „RegisterController.php“:

class RegisterController extends BaseController  {
    public function info()  {
        return 'Toto je info z register kontrolera.';
    }
    public function post(Request $request)  {
        $input = $request->all();
        $success = 'test: '. $input['test'];
        return $this->sendResponse($success, 'test post is OK');
    }

A v utilite „Postman“ mám:

POST		bigoo.eu/subdom/API/public/index.php/api/post

a v „Body/form-data“ nastaviť:

key:    value:
test    123456789

Role: Zákazník
JŠ255861 Změnil status na publikováno 23. 8. 2021
0
53.63K Odpověď od WEDOS Internet, a.s. 0 Comments

Dobrý den,

toto je výchozí .htaccess, ten chybu nezpůsobuje. Dle všeho máte chybu v kódu, přiložte sem Váš kód.

Role: Podpora Web: https://stackoverflow.com/ Vizitka: Roses are Red, Violets are Blue Unexpected '{' on line 32.
JŠ255861 Odpověděl na otázku 23. 8. 2021