Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

123
Visualizações
¿Por qué obtengo un archivo 2 veces cuando busco un php a través de ajax?

Me resulta bastante curioso. Tengo un archivo de prueba php como este:

 <div class="live-ajax-messages">message from deep ajax</div>

Lo obtendré usando esta función:

 public function get_ajax_messages_template() { ob_start(); include(__DIR__. '/../templates/search-results-messages.php'); $content = ob_get_contents(); exit($content); }

Obtendré esa salida de función como esta:

 load_ajax_messages_template: function(){ jQuery.ajax({ url: ajax_url, data: 'action=my_action', // executes get_ajax_messages_template dataType: 'html', type: "GET", success: function(response){ console.log(response); // getting 2 times <div class="live-ajax-messages">message from deep ajax</div> //this.results_el.find('.ajax-results').html(response); }.bind(this), }) },

Básicamente, conseguiré

 <div class="live-ajax-messages">message from deep ajax</div> <div class="live-ajax-messages">message from deep ajax</div>

¿Por qué?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El almacenamiento en búfer de salida (las funciones ob_* ) almacena temporalmente la salida. Si el script finaliza mientras todavía hay una salida almacenada en el búfer, se escribirá en la respuesta.

Entonces, aquí está almacenando en búfer la salida de search-results-messages.php . La llamada a ob_get_contents devuelve el búfer actual, pero no lo borra.

Luego, cuando llama a exit($contents) está escribiendo el contenido en la respuesta, luego vaciando el búfer de salida que también contiene el contenido.

Hay dos soluciones posibles aquí. (1) es reemplazar ob_get_contents con ob_get_clean que hace lo mismo, pero borra el búfer.

La otra solución (más simple) es simplemente incluir el archivo sin almacenamiento en búfer de salida, ya que desea escribir su contenido de todos modos, luego simplemente llame a exit(); sin parámetros.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda