Tengo una función que quiero ejecutar cuando ajax realiza una solicitud exitosa pero no ejecuta aquí mi parte jquery

$.ajax({  
    type: "POST",  
     url: "https://www.example.com/create_chat.php",  
     data: dataString,
        beforeSend: function() 
            {
                $("#loading_indicator").show();
            },  
        success: function(response)
            {
                $(".example").html(response);

            }
        }); 

Aquí está la respuesta del archivo php

<script>start_chat(); alert("testing");</script>

Traté de agregar esto también

$(".example").find("script").each(function(i) {
eval($(this).text());
});

Pero nada funciona

1
Sagar Singh 8 may. 2016 a las 20:22

3 respuestas

La mejor respuesta

Su respuesta de create_chat podría indicar qué función se utilizará. Por ejemplo

$.ajax({  
    type: "POST",  
     url: "https://www.example.com/create_chat.php",  
     data: {
      dataString: dataString
    },
        beforeSend: function() 
            {
                $("#loading_indicator").show();
            },  
        success: function(response) // response could be 1,2,3,4.. etc
            {
                if(response==1) {
                start_chat();
                }
                if(response==2) {
                stop_chat();
                }
                if(response==3) {
                change_chat_room();
                }
                ...
                $(".example").html(response);

            }
        }); 
1
Peter Darmis 8 may. 2016 a las 17:34

Prueba esto,

  $.ajax({
    type: "POST",
    data: {
      'dataString': dataString
    },
    url: 'https://www.example.com/create_chat.php',
    success: function(data) {
      start_chat();
      alert('Success');
    },
    error: function(data) {
      alert('failed');
    }
  });
0
Fil 8 may. 2016 a las 17:35

Si bien existen soluciones alternativas, nunca debe ejecutar la respuesta de una llamada Ajax directamente.

"Los scripts en el árbol de documentos resultante no se ejecutarán, los recursos a los que se hace referencia no se cargarán y no se aplicará ningún XSLT asociado".

http://www.w3.org/TR/XMLHttpRequest/#document-response-entity-body

La mejor práctica es responder con datos, generalmente en forma de JSON, JSONP o HTML.

1
Ryan Johnston 8 may. 2016 a las 17:37