添加AJAX错误:&成功:打破脚本

时间:2014-07-22 16:54:30

标签: javascript jquery ajax

我有一个AJAX调用可以正常使用以下代码:

            $.ajax({
               url: "filename.php",
               type:"POST",
               data: {
                   "pType":pType},
               dataType: "json", 
               complete:function(){
               $('body, html').animate({scrollTop:$('#adminFunctions').offset().top}, 'slow');
                    }
               });// end ajax call

但是当我尝试添加错误时:& AJAX调用的成功参数,脚本不再起作用。

$.ajax({
url: "filename.php",
type:"POST",
data: {
      "pType":pType},
dataType: "json", 

success: function() {
    $('#resultDiv').html('Success!' + response.responseText);
    $('body, html').animate({scrollTop:$('#logoText').offset().top}, 'slow');
    $('#addRentalPropertyForm').slideUp();
    $('#resultDiv').slideDown();
    $('#adminFunctionsA').slideDown();
    },

error: function() {
    $('#resultDiv').html('A problem has occurred.' + response.responseText);
    $('body, html').animate({scrollTop:$('#logoText').offset().top}, 'slow');
    $('#resultDiv').slideDown();
    },

});// end ajax call

任何人都可以帮助指导我吗?我似乎无法弄清楚为什么会失败。完成:标记工作正常,数据提交成功,但是当我添加错误和成功代码时,它什么也没做。任何帮助将不胜感激,我确信它缺少一些基本的东西。

2 个答案:

答案 0 :(得分:3)

 $.ajax({
  url: "filename.php",
  type:"POST",
  data: {
          "pType":pType},
  dataType: "json", 
  contentType: "application/json; charset=utf-8",
  success:function(data) {
                    // This outputs the result of the ajax request
                        console.log(data);
                        alert ('Appears successful');
                        // $('#resultDiv').html('Success!' + response.responseText);
                        $('body, html').animate({scrollTop:$('#logoText').offset().top}, 'slow');
                        $('#addRentalPropertyForm').slideUp();
                        $('#resultDiv').slideDown();
                        $('#adminFunctionsA').slideDown();
                    },
                    error: function(errorThrown){
                        console.log(errorThrown);
                        alert ('Seems to be a problem');
                        // $('#resultDiv').html('A problem has occurred.' + response.responseText);
                        $('body, html').animate({scrollTop:$('#logoText').offset().top}, 'slow');
                        $('#resultDiv').slideDown();
                        return false;
                    }  
    });

答案 1 :(得分:1)

  1. 您没有将response传递给errorsuccess回调:
  2. 由于dataType json response不具有responseText属性
  3. 考虑将回调简化为console.log( response );一旦你知道了response的结构,就可以编写你需要的任何逻辑。

    success: function(response) { $('#resultDiv').html('Success!' + response.responseText); // ????

    error: function(response) { $('#resultDiv').html('A problem has occurred.' + response.responseText); // ???

  4. <强>更新

    1. 除非您确定dataType:'json'正在返回json,否则您不应使用filename.php。否则,您将获得 parseerror 。最有可能的是你得到的...... 返回的数据无法解析为json对象,因此错误回调将被触发。 使用dataType:'text'或{{1}并且你的成功处理程序应该触发。
    2. 以下内容无效dataType:'html'

      JSON