Ajax success()函数在函数内的jQuery内不起作用

时间:2018-09-05 05:36:56

标签: javascript jquery

我正在编写一个带有ajax函数的jquery代码,以在下拉列表更改时获取数据库数据。

但是ajax函数看起来好像没有执行,当我使用chrome浏览器检查代码时,它没有给出任何错误消息,我试图在更改函数上警告一些数据,它可以工作,但是我却没有得到任何提示结果或成功函数中的数据。

这是我的代码

$(document).ready(function() {
  $('#prov_id').on('change', function() {
    alert($('#prov_id').val());
    $.ajax({
      type: 'POST',
      url: 'ajax_queries.php',
      data: {
        request: 'get_states',
        prov_id: $('#prov_id').val()
      },
      success: function(data) {
        alert(data);
      }
    });
  });
});

此警报有效

alert($('#prov_id').val());

但这不是

success: function(data){
  alert(data);
}

有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

在您的ajax请求中设置dataType:'json'

<script>
$(document).ready(function(){

   $('#prov_id').on('change',function(){
    $.ajax({
      type: 'POST',
      url: 'ajax_queries.php',
      dataType:'json',
      data: {request:'get_states',prov_id:$('#prov_id').val()},
      success: function(data){
          alert(data);
      },
      error:function(){
       alert('Error :(');
      }    
    });
  });

});
</script>

答案 1 :(得分:-1)

$.ajax( "example.php" )
  .done(function(ht) {
    alert( ht );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });

答案 2 :(得分:-1)

您应该先将数据存储到变量中,然后再将其传递给ajax。

<script>
$(document).ready(function(){

    $('#prov_id').on('change',function(){
    var prov_id = $('#prov_id').val();
    alert(prov_id);
    $.ajax({
      type: 'POST',
      url: 'ajax_queries.php',
      data: {request:'get_states',prov_id:prov_id},
      success: function(data){
          alert(data);

      }

        });

    });
});
</script>