POST solicitações de jQuery para PHP preso se os dados POST excederem várias centenas de caracteres

1

Eu tenho uma solicitação simples de ajax sendo iniciada pelo jQuery para um script PHP:

$.ajax({
  url:"script.php",
  data: data,
  type: "POST"
  // error & success handlers here
});

Se os dados (podem ser JSON, poderem ser um arquivo binário), excederem algumas centenas de caracteres, a solicitação POST nunca é concluída, apenas fica travada. Nenhum erro no log do apache ou no console JS, nenhuma outra indicação sobre o que pode estar acontecendo.

Brincando com o php.ini post_max_data e outras configurações não deram nenhum resultado e todas as configurações que eu pude pensar estão definidas para valores muito permissivos.

Estou executando um servidor Ubuntu 14.04 com o Apache 2.4 e o PHP 5.5.9.

O que estou perdendo?

    
por BrokenJazzyBrick 17.11.2014 / 13:25

1 resposta

1

Você verificou sua configuração do PHP com relação ao tamanho da sua solicitação? Existem vários parâmetros controlando o tamanho permitido de um pedido, eu incluirei os mais importantes aqui (direto do php.ini com referências).

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 10M

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 1000

Este talvez precise ser aumentado se você tiver uma estrutura de dados altamente aninhada em suas variáveis de postagem (bastante improvável)

; Maximum input variable nesting level
; http://php.net/max-input-nesting-level
max_input_nesting_level = 64

Se isso não funcionar, acabei de encontrar um bom resumo sobre como aumentar seus limites e tempos limite em apache / php: link

Espero que isso ajude,

Atenciosamente e feliz codificação!

    
por 18.11.2014 / 17:10