Laravel:Ajax POST请求执行了一个POST,而第二个GET则不需要

时间:2018-07-10 09:20:47

标签: php jquery ajax laravel

使用此函数执行POST请求:

$.post('../CPaddVolo/',{
                  _token: $('#_token').val(),
                  data:values
                }).done(function(){
                  if (msg==='ok'){
                    swal("Volo aggiunto con successo!");


                  }else{
                    swal("Errore nella gestione della richiesta: riprovare.");
                  }
                })
                .fail(function(err){
                    swal("Aggiunta del volo fallita.");
                });

页面中的整个HTML代码和JS:   

模Voli

                      <div class="row">
                        <!--Voli presenti-->
                        <div class="col-md-6">
                          <label>Voli presenti</label>
                          @if (count($data[6])>0)
                            @foreach ($data[6] as $volo)
                            <form action="{{route('updateVolo',$data[6]->id)}}" enctype="multipart/form-data" method="post">
                              <label for="compagnia">
                                Compagnia di volo
                              </label>
                              <select class="form-control" id="newVoloidCompagniaFk" name="compagnia">
                                  @foreach ($data[11] as $compagnia)
                                    @if ($compagnia->id===$volo->idCompagniaFk)
                                      <option value="{{$compagnia->id}}" selected="selected">
                                        {{$compagnia->nome}}
                                      </option>
                                    @else
                                    <option value="{{$compagnia->id}}">
                                      {{$compagnia->nome}}
                                    </option>

                                    @endif
                                  @endforeach
                              </select>

                              <label for="dataoraPart">Data e ora di partenza (gg/mm/aaaa hh:mm)</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}dataoraPart" name="dataoraPart"/>

                              <label for="dataoraArrivo">Data e ora di arrivo (gg/mm/aaaa hh:mm)</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}dataoraArrivo" name="dataoraArrivo"/>

                              <label for="origine">Origine:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}origine" name="origine" />

                              <label for="destinazione">Destinazione:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}destinazione" name="destinazione" />

                              <label for="classe">Classe:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}classe" name="classe" />

                              <label for="servizi">Servizi:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}servizi" name="servizi" />

                              <label for="buy">Buy:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}buy" name="buy" />
                              <label for="sell">Sell:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}sell" name="sell" />
                              <label for="bar">BAR:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}bar" name="bar" />

                              <label for="istruzioni">Istruzioni:</label>
                              <input type="text" class="form-control" id="volo{{$volo->id}}istruzioni" name="istruzioni" />

                              <label for="status">Stato:</label>
                              <select name="status" id="volo{{$volo->id}}status">
                                @foreach($data[12] as $status)
                                  @if ($status->id===$volo->status)
                                    <option value="{{$status->id}}" selected="selected">
                                        {{$status->nome}}
                                    </option>
                                  @else
                                    <option value="{{$status->id}}" >
                                        {{$status->nome}}
                                    </option>
                                  @endif
                                @endforeach
                              </select>

                              <input type="submit" class="btn btn-success" value="Modifica volo"/>
                            </form>
                            @endforeach
                          @else
                            <br/>

                          Nessun volo presente per la proposta cliente.
                          @endif
                        </div>
                        <!--Aggiunta di un nuovo volo-->
                        <div class="col-md-6">
                          <label>Aggiunta nuovo volo</label><Br/>


                          <label for="compagnia">
                            Compagnia di volo
                          </label>
                          <select class="form-control" id="newVoloidCompagniaFk" name="compagnia">
                            <option value="0">
                              Seleziona una compagnia di volo
                            </option>
                              @foreach ($data[11] as $compagnia)

                                <option value="{{$compagnia->id}}">
                                  {{$compagnia->nome}}
                                </option>


                              @endforeach
                          </select>

                          <label for="dataoraPart">Data e ora di partenza (gg/mm/aaaa hh:mm)</label>
                          <input type="text" class="form-control" id="newVolodataoraPart" name="dataoraPart"/>

                          <label for="dataoraArrivo">Data e ora di arrivo (gg/mm/aaaa hh:mm)</label>
                          <input type="text" class="form-control" id="newVolodataoraArrivo" name="dataoraArrivo"/>

                          <label for="origine">Origine:</label>
                          <input type="text" class="form-control" id="newVoloorigine" name="origine" />

                          <label for="destinazione">Destinazione:</label>
                          <input type="text" class="form-control" id="newVolodestinazione" name="destinazione" />

                          <label for="classe">Classe:</label>
                          <input type="text" class="form-control" id="newVoloclasse" name="classe" />

                          <label for="servizi">Servizi:</label>
                          <input type="text" class="form-control" id="newVoloservizi" name="servizi" />

                          <label for="buy">Buy:</label>
                          <input type="text" class="form-control" id="newVolobuy" name="buy" />
                          <label for="sell">Sell:</label>
                          <input type="text" class="form-control" id="newVolosell" name="sell" />
                          <label for="bar">BAR:</label>
                          <input type="text" class="form-control" id="newVolobar" name="bar" />

                          <label for="istruzioni">Istruzioni:</label>
                          <input type="text" class="form-control" id="newVoloistruzioni" name="istruzioni" />

                          <label for="status">Stato:</label>
                          <select class="form-control" name="status" id="newVolostatus">
                            <option value="0">
                              Seleziona uno stato
                            </option>
                            @foreach($data[12] as $status)

                                <option value="{{$status->id}}" >
                                    {{$status->nome}}
                                </option>

                            @endforeach
                          </select>
                          <br/>
                          <br/>
                          <button class="btn btn-warning" onclick="addVolo()">Aggiungi nuovo volo</button>




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

  });


function proposalDelete(id){
  swal("Sei sicuro di voler eliminare questa proposta cliente?",{
    buttons:{
      cancel: "Annulla",
      conferma: "Conferma"

    }
  })
  .then((value)=>{
    switch(value){
      case "cancel":
        swal("Operazione annullata");
        break;
      case "conferma":{

        $.ajax({
             type: "GET",
             url: '../CPDelete/'+id

         }).done(function( msg ) {
             if (msg==='ok'){
               swal("Proposta cliente eliminata.");

               window.location='../clientProposals';
             }else{
               swal("Errore nella gestione della richiesta: riprovare.");
             }

         });
      };break;
    }
  });

}


(function() {
    document.getElementById('datainizio').value=document.getElementById('datainizio').value.substr(8,2)+'/'+document.getElementById('datainizio').value.substr(5,2)+'/'+document.getElementById('datainizio').value.substr(0,4);
    document.getElementById('datafine').value=document.getElementById('datafine').value.substr(8,2)+'/'+document.getElementById('datafine').value.substr(5,2)+'/'+document.getElementById('datafine').value.substr(0,4);

})();


function addVolo(){
  swal("Procedere all'aggiunta del nuovo volo?",{
    buttons:{
      cancel: "Annulla",
      conferma: "Conferma"

    }
  })
  .then((value)=>{
    switch(value){
      case "cancel":
        swal("Operazione annullata");
        break;
      case "conferma":{

        if ((isValidDatetime($('#newVolodataoraPart').val())) && (isValidDatetime($('#newVolodataoraArrivo').val()))){
          if (($('#newVoloidCompagniaFk').val()!=0) && ($('#newVolostatus').val()!=0)){
            values=[];
            $('*[id*=newVolo]:visible').each(function() {

                  if ( ($(this).attr('id')!='newVoloidCompagniaFk') || ($(this).attr('id')!='newVolostatus')){
                    if ( ($(this).attr('id')=='newVolobar') ||
                          ($(this).attr('id')=='newVolobuy') ||
                            ($(this).attr('id')=='newVolosell')
                        ){
                      if (!isNaN($(this).val())){
                        values.push($(this).val());
                      }

                    }
                    else if ( ($(this).attr('id')=='newVolodataoraPart') || ($(this).attr('id')=='newVolodataoraArrivo')){

                        values.push(datetimeComposer($(this).val()));

                    }
                    else{
                      if ($(this).val().length>0){
                        values.push($(this).val());
                      }
                    }

                  }

              });

              values.push($('#CPID').val());
              if (values.length!=13){
                swal("Accertati di aver riempito tutti i campi e che gli indici di BAR, buy e sell siano numerici.");
              }else{
                console.log("eseguo");
                $.post('../CPaddVolo/',{
                  _token: $('#_token').val(),
                  data:values
                }).done(function(){
                  if (msg==='ok'){
                    swal("Volo aggiunto con successo!");


                  }else{
                    swal("Errore nella gestione della richiesta: riprovare.");
                  }
                })
                .fail(function(err){
                    swal("Aggiunta del volo fallita.");
                });


              }





          }else{
            swal("Selezionare una compagnia di volo e uno stato del volo stesso.");
          }

        }else{
          swal("Gli orari di partenza e arrivo non hanno un formato corretto.");
        }


      };break;
    }
  });

}

function datetimeComposer(value){
  return value.substr(6,4)+'-'+value.substr(3,2)+'-'+value.substr(0,2)+' '+value.substr(11,5)+':00';
}
//Verifica che la data orario sia scritta in formato corretto
function isValidDatetime(value){
  data=value.substr(0,10);
  ora=value.substr(11,5);

  if (value.length==16){
    if (value.substr(0,10) != '' && value.substr(0,10).match(/^\d{1,2}\/\d{1,2}\/\d{4}$/)){
      if (value.substr(11,5)!='' && value.substr(11,5).match(/^\d{1,2}:\d{2}([ap]m)?$/)){
        return true;
      }
    }
  }

  return false;




}

然后将其路由到我的“ web.php”中:

Route::post('/cms/CPaddVolo/', 'DetailsClientProposalController@addVolo')->name('addVolo');

将执行第一个POST请求(给出任何响应):

first POST request result

然后,同时执行第二个GET请求,该请求在我的代码的任何部分都没有完成:

GET request not wanted

这将引发错误(因为路由不允许GET请求):

GET http://amaka.demomasetek.online/cms/CPaddVolo 405 (Method Not Allowed)

实际上,我也尝试在POST中设置具有相同结果的整个URL,但是此问题仍然存在,同时我认为问题是URL本身中的最后一个“ /”:有或没有的相同结果。 / p>

使用$.ajax和“ POST”设置为回调内部参数的结果相同。

1 个答案:

答案 0 :(得分:0)

好的,据我了解,您正在尝试连续执行2条路线?第一个是POST请求,第二个是GET请求?

//this is your first request using POST  
$.post('../CPaddVolo/',{
                  _token: $('#_token').val(),
                  data:values
                }).done(function(){
                  if (msg==='ok'){
                    secondCPaddVolo(); //call it in success function
                    swal("Volo aggiunto con successo!");



                  }else{
                    swal("Errore nella gestione della richiesta: riprovare.");
                  }
                })
                .fail(function(err){
                    swal("Aggiunta del volo fallita.");
                });


function secondCPaddVolo(){
  $.ajax({
  method: "GET",
  data: {yourdata},
  url: '../CPaddVolo/', //whatever your URL is
  successs: function(data){
    //return your data
  },
  error: function(data){
  //return
 }
});


}

您可以做的是在第一个AJAX的成功函数中调用第二个请求。我希望这就是你的意思。如果需要其他方法,可以在第一个请求的控制器功能内调用第二个请求的控制器功能。