.ajax()在第一次尝试时不返回任何内容

时间:2013-12-28 15:14:52

标签: ajax jquery

jquery .ajax()请求在第一次尝试时不返回任何内容。只有再次触发相同的功能才会返回正确的数据。

以下是我用来解决问题的代码(原因尚不清楚):

   $(document).ready(function(){
    $(window).load(function(){
      $('input').change(function() {
        $('#b').removeClass("valid");
           if ($('#b').val()) {
             bajax(false);
           }
        }
        function bajax(e) {
           $.ajax({
              type: "GET",
              dataType: 'text',
              data: 'i='+$('#b').val(),
              cache: false,
              url: 'b.php',
              success: function(data){
                 $('#b').val(data);
                 $('#b').addClass("valid");
              },
              error: function() {
                 if (!e) {
                    bajax(true);
                 } else {
                    $('#b').val("An error occured.");
                    $('#b').removeClass("valid");
                 }
              }
        });
      });
    });
   });

#b是一个简单的<input>b.php输出一个短字符串。我正在使用echo "123";进行测试,正如我所说的那样,除了我必须两次触发此请求才能显示文本。

编辑: console.log输出:

[16:47:54.893] "Running..."
[16:47:55.096] GET b.php?i=19&_=1388245674895 [0ms]
[16:47:55.583] "Call to error function"
[16:47:59.595] GET b.php?i=19&_=1388245679534 [0ms]
[16:47:59.533] "Running..."
[16:48:00.025] "Came into the success function with" "123"

0 个答案:

没有答案