0

tengo una API Rest desarrollada en laravel 7.2 hospedada en hostinger cuando hago una consulta a un método GET todo funciona bien, cuando empleo otro método como POST o PUT me devuelve este error 405 Method Not Allowed. En un servidor local si funciona bien. Estoy usando Postman para testear la API.

Anexo código de la API del archivo routes/api.php.

<?php
  use App\Http\Controllers\API\AuthController;
  use Illuminate\Http\Request;
  use Illuminate\Support\Facades\Route;

  Route::post('prueba', [AuthController::class,'prueba']);
  Route::get('prueba2', [AuthController::class,'prueba2']);

Anexo código de la API de la clase AuthController.

<?php

namespace App\Http\Controllers\API;

use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use App\User; 
use Illuminate\Support\Facades\Validator;


class AuthController extends Controller
{

    public function prueba(Request $request)
    {
        return response()->json(['message' => 'Hello Word']);
    }

     public function prueba2()
     {
         return response()->json(['message' => 'Hello Word2']);
      }
}

Anexo imágenes de los test introducir la descripción de la imagen aquí introducir la descripción de la imagen aquí

8
  • ¿Tus rutas están definidas correctamente en el entorno remoto? Revisa si en el archivo .htaccess no estás prohibiendo el método POST.
    – A. Cedano
    Commented el 6 jun. 2023 a las 15:09
  • Las peticiones post no deberían tener un campo con el csrf token? laravel.com/docs/7.x/csrf Commented el 6 jun. 2023 a las 15:14
  • @A.Cedano no tengo definido un archivo .htaccess. EL dominio apunta a la raíz del sitio y empleo /public después del dominio para acceder al archivo index de la aplicación. No se si eso sea un problema ?? en local me funciona y el metodo get funciona en en hosting tambien.
    – Cheng97
    Commented el 6 jun. 2023 a las 15:20
  • Ah, viendo lo que le comentas a A.Cedano, probablemente tengas mal configurado el server (apache, nginx, ...). El root debería apuntar al directorio /public de tu proyecto, y no a la raíz de proyecto. En la doc te dan un ejemplo con nginx root /srv/example.com/public; Commented el 6 jun. 2023 a las 15:31
  • Debe ser un problema de rutas o que directamente esos métodos están bloqueados en el servidor remoto. No sé si te den acceso a httpd.conf, si es un hosting compartido, por lo general no te dan acceso a la configuración de Apache o Nginx y deberás resolverlo vía .htaccess, sea las rutas, si están mal, sea los métodos, si están bloqueados. Si es un VPS sí deberías tener acceso a la configuración y será más fácil definir las rutas correctas.
    – A. Cedano
    Commented el 6 jun. 2023 a las 15:38

1 respuesta 1

0

Soy estúpido jejeje, el problema estaba en la petición, le estaba haciendo una petición http al servidor, cuando ya tiene incorporado certificado ssl. La petición con https:// funciona perfectamente. Gracias a todos.

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.