Dos solicitudes $.post una tras otra. La segunda solicitud $.post no se ejecuta

Resuelto Sushant Sumbare asked hace 11 años • 1 respuestas

Tengo una función de JavaScript dentro de la cual tengo dos solicitudes $.post. Ambas solicitudes $.post deberían ejecutarse. Pero a veces, la segunda solicitud $.post no se ejecuta. ¿Cuál podría ser el motivo?

Sushant Sumbare avatar Jul 27 '13 00:07 Sushant Sumbare
Aceptado

$.post()es una forma abreviada de la estructura $.ajax(). Normalmente prefiero usar la $.ajax()estructura porque:

  • Es más fácil ver si me he perdido algo.
  • Puedo agregar más fácilmente parámetros adicionales, comoasynch: false,
  • Cuando era nuevo en ajax, me resultó considerablemente más fácil solucionar problemas de esta estructura.

En su caso, es posible que su problema le resulte más fácil de resolver en una $.ajax()estructura, ya que sería más fácil ver que debe ocurrir una segunda llamada ajax (que depende del resultado de una primera llamada ajax) en la función de éxito del primer ajax. llamar .

Aquí hay un ejemplo independiente (lástima que jsFiddle no pueda manejar ajax...):

PROBADOR.PHP

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('#eml').focus();

                $('#mybutt').click(function() {
                    var $a = $('#eml').val();
                    var $b = $('#pw').val();

            //alert('Email: ' +$a+ '     Pass: ' +$b);

                    $.ajax({
                        type:"POST",
                        url: "yourphpfile.php",
                        data: 'email=' +$a+ '&pass=' +$b,
                        success: function(data) {
            alert(data);
                            var aData = data.split('|');

                            var name = aData[0];
                            var code = aData[1];
            alert('Name: ' +name+ '     Code: ' +code);

                            $.ajax({
                                type:"POST",
                                url: "yourphpfile.php",
                                data: 'name=' +name+ '&code=' +code,
                                success: function(newdata) {
                                    alert(newdata);
                                } //END success_ajax2
                            }); //END ajax() #2

                        } //END success_ajax1
                    }); //END ajax() #1
                }); //END mybutt.click()

            }); //END $(document).ready()

        </script>
    </head>
<body>

    Email: <br />
    <input type="text" id="eml" /><br />
    Password: <br />
    <input type="password" id="pw" /><br />
    <input type="button" id="mybutt" value="Submit">

</body>
</html>

tuarchivophp.php

<?php

if (isset($_POST['email'])) {
    $e = $_POST['email'];
    $p = $_POST['pass'];

    $name = 'Bob';
    $code = '1234';

    $resp = $name .'|'. $code;
    echo $resp;

}else if (isset($_POST['name'])) {
    $n = '<h1>Here is something new</h1>';
    echo $n;
}
cssyphus avatar Jul 26 '2013 17:07 cssyphus