JQuery AJAX 403 Proibido

Eu criei uma página de login que usa PHP e JQuery. O problema é que estou encontrando um erro 403 Proibido toda vez que o JQuery $ .ajax tenta acessar o arquivo user_login.php.

Abaixo estão meus códigos atuais:

user_index.php

   Foot Steps Philippines -- User Log-in          

user_login.js

 $(document).ready(function(){ $("#fsp_login_form").submit(function(){ $('#login_message').html("Please wait..."); var action = $('#fsp_login_form').attr('action'); var form_data = { fsp_email: $('#fsp_email').val(), fsp_password: $('#fsp_password').val(), is_ajax: 1 }; $.ajax({ type: "POST", url: action, data: form_data, dataType: "text", contentType: "application/x-www-form-urlencoded; charset=UTF-8", success: function(response) { if ( response == 'success' ) { $('#login_message').html("Login successful!"); setTimeout(function(){ window.location.href = 'user_cpanel.php'; }, 2000); } else { $('#login_message').html("Login failed!"); } }, error: function(err) { //$('#login_message').html(err.responseText); alert(err.responseText); } }); return false; }); }); 

user_login.php

  0 ) { $client_id = 0; $premium = 0; while ( $row = mysqli_fetch_array($result) ) { $client_id = $row['id']; $premium = $row['premium_member']; } $_SESSION['client'] = $client_id; $_SESSION['premium'] = $premium; $res = "success"; } else { $res = "failed"; } mysqli_free_result($result); } else { $res = "failed"; } } else { $res = "failed"; } mysqli_close($conn); echo $res; ?> 

conn.php * Nota: eu intencionalmente usei minha configuração de database localhost. Eu já ajustei quando fiz o upload para o meu servidor de hospedagem.

  

Todos os arquivos estão no mesmo diretório e todos têm permissão 0644. Você tem alguma ideia de como corrigir o erro? By the way, minha página de login está funcionando perfeitamente quando executado no host local. Mas não está funcionando quando carregado com o meu servidor de hospedagem. Eu não tenho access ao arquivo de configuração PHP do meu web hosting e ao arquivo de configuração do Apache assim, tanto quanto possível, por favor, tente não fornecer uma solução que exija a reconfiguração do PHP e do Apache.

Obrigado 🙂

Problema resolvido! Eu só peço a minha hospedagem para criar uma exceção para o meu domínio. Eu acho que a configuração mod_security do seu servidor faz com que o 403 Erro Proibido.

É isso que eu quero dizer:

  var form_data = { fsp_email: encodeURIComponent($('#fsp_email').val()), fsp_password: encodeURIComponent($('#fsp_password').val()), is_ajax: 1 }; 

Qual servidor web você está usando?

Para depurar isso, eu tentaria o seguinte (crie um backup primeiro se você não puder reverter esses comandos):

Apache (Ubuntu – família):

 chown www-data:www-data user_login.php chmod 777 user_login.php 

Apache (CentOS – família):

 chown httpd:httpd user_login.php chmod 777 user_login.php 

E tente novamente. Além disso, verifique se o seu script está procurando no lugar certo para o arquivo (chdir, se necessário).

Se você ainda está recebendo o 403 proibido, verifique seu servidor web access.log para as inputs correspondentes e eles devem dar a dica do que deu errado.