Habilitar métodos PUT e DELETE

Sempre que tento fazer uma requisição ajax com o método put ou delete, o erro 403 é gerado pelo servidor…

Já inseri tanto no php quanto no htaccess
header(“Access-Control-Allow-Methods: GET, POST, OPTIONS”);
Mas não adiantou.

Opa, eu consegui somente desabilitando o mod_security

1 curtida

Bom dia, exatamente Roberto, as vezes o mod_security acaba bloqueando, poderia testar Jadson?

Pra mim não deu certo… Desabilitei o mod_security, habilitei no Headers e nada… Chato demais… PAgamos por uma hospedagem capada que não permite fazer as coisas interessantes.

Eu também não estou conseguindo, já desabilitei o mod_security e não funciona. Estou pensando em assinar o plano e virar cliente da Umbler, porém sem esses recursos eu não tenho como migrar meu site que faz muito o uso desses dois métodos PUT e DELETE. Alguém poderia me auxiliar pf?

1 curtida

Olá @Fabio_Lima_Souto tudo bem?

Os métodos PUT e DELETE só são habilitados nos planos mais isolados, como cloudSites, no ambiente compartilhado sitepro, é desativado por questões de segurança. Então neste caso você teria que fazer um upgrade de plano para utilizar estes dois métodos. Qualquer dúvida estou a disposição.

Então vamos de container :slight_smile:
Obrigado pelo retorno!

$GLOBALS["_PUT"]=null;
if($_SERVER['REQUEST_METHOD'] == 'PUT') {
    $form_data= json_encode(file_get_contents("php://input"));
    $key_size=52;
    $key=substr($form_data, 1, $key_size);
    $acc_params=explode($key,$form_data);
    array_shift($acc_params);
    array_pop($acc_params);
    foreach ($acc_params as $item){
        $start_key=' name=\"';
        $end_key='\"\r\n\r\n';
        $start_key_pos=strpos($item,$start_key)+strlen($start_key);
        $end_key_pos=strpos($item,$end_key);
        
        $key=substr($item, $start_key_pos, ($end_key_pos-$start_key_pos));
        
        $end_value='\r\n';
        $value=substr($item, $end_key_pos+strlen($end_key), -strlen($end_value));
        $_PUT[$key]=$value;
    }
    $GLOBALS["_PUT"]=$_PUT;
}