Welcome Guest, Not a member yet? Register   Sign In
Me rindo, no encuentro donde falla el verbo
#1
Sad 
(This post was last modified: 06-03-2022, 05:53 AM by Worked.)

Saludos,
Llevo casi una hora peleandome con el siguiente código, en el que estoy seguro de que el "verbo" es el problema:

He usado la misma ruta para los tres verbos, he cambiado el nombre del controlador por si CodeIgniter usaba el nombre "Enforce" en alguna parte del core, he ... N, pero el resultado es siempre el mismo. GET resuelve sin problemas, pero cuando trato de usar POST o PUT CodeIgniter me devuelve todo el rato al controlador por defecto (login). Estos son los archivos:

PHP Code:
Routes.php
$routes
->get('/(:uuid)/enforce/(:uuid)''Enforce::supplier/$1/$2');
$routes->post('/(:uuid)/enforce/(:uuid)''Enforce::supplier/$1/$2');
$routes->put('/(:uuid)/enforce/(:uuid)''Enforce::supplier/$1/$2'); 

PHP Code:
Enforce.php
<?php

namespace App\Controllers;
use 
CodeIgniter\Controller;

/**
 * Class Enforce
 *
 * Comentarios muy interesantes que no vienen al caso.
 */
class Enforce extends BaseController
{

 
/**
  * Mordaz comentario descriptivo.
  * @param  string  $bla Foo
  * @param  string  $ble Bar
  */
 
public function supplier(string $blastring $ble)
 {

return 
$this->response->setStatusCode(200)
    ->setHeader('Content-Type''application/json')
    ->setBody(json_encode(['Status' => 'danger''Message' => implode(','$_POST)]));
 }
 
// - --  ---  ------------------------------------------------------------

}
/* End of file Enforce.php */
/* Location ./app/Controllers/Enforce.php */ 

Tengo habilitado CSRF, sí, lo tengo habilitado... pero el caso es que en la petición FETCH envío el token y código csrf por lo que no debería ser el problema.

Code:
JavaScript
const Enforce = (elem, form, status) => {
    const article = elem.split('-enforce-')[1]

    const formData = new FormData()
        formData.append('Document', String(document.querySelector('#' + article).dataset.name))
        formData.append('Enforce', String(status))
        formData.append('<?= csrf_token() ?>', '<?= csrf_hash() ?>')
        formData.append('Upload', String(document.querySelector('#' + article).dataset.update))

    fetch(form, {
        method: 'PUT',
        body: formData
    })
    .then(async recv => {
        console.log(recv)
    })
}

Ya estoy tirandome de los pelos... ¿alguna sugerencia?
Gracias.
Reply


Messages In This Thread
Me rindo, no encuentro donde falla el verbo - by Worked - 06-02-2022, 10:46 AM



Theme © iAndrew 2016 - Forum software by © MyBB