2013-07-06 26 views
0

好日子,我有一個ajax查詢的問題,但是當響應像4090+字符長度然後jQuery ajax函數失敗並運行錯誤函數,這裏是我的代碼:當4k字符時jQuery AJAX響應明顯的限制

function loadContent(e) { 

currentActiveSlide = e; 

    var parametros = { 
      "action" : 'slideContent', 
      "rel"  : e.attr('rel'), 
    }; 

    jQuery.ajax({ 
       data: parametros, 
       url: template_url + '/ajax.php', 
       type: 'post', 

       success: function (response, e) { 
        //What ever... 
       }, 
       error: function(xhr, status, error) { 
        alert(error); 
     } 
    }); 
} 

不要緊響應數據是什麼,我嘗試添加的「a」字符4K +的時候,這launchs與錯誤變量空誤差函數。

有什麼建議嗎? - 提前致謝!

添加的數據:

不要緊,哪些數據是,例如,如果我作爲響應字符「a」超過4K時間發送「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ......」,那麼功能將無法正常工作,如果有不到4k,那麼它會工作,因爲它應該工作,但不會如果超過4k字符,所以我認爲響應變量或類似的限制。

+0

你也可以發佈從'ajax.php'生成的內容嗎? –

回答

0

jQuery ajax docs

成功

類型:Function(PlainObject數據,字符串textStatus,jqXHR jqXHR)的函數。如果請求成功被調用。函數 獲得三個參數:從服務器返回的數據, 根據dataType參數格式化;描述 狀態的字符串;和jqXHR(在jQuery 1.4.x,XMLHttpRequest)對象中。從 jQuery 1.5開始,成功設置可以接受一系列函數。每個 函數將依次調用。這是一個Ajax事件。

所以我相信jQuery(e).html(..)是錯誤的,因爲e是一個狀態字符串不是一個選擇(你在成功的功能範圍,所以,e VAR你面前有無法訪問 - 您所定義的另一個同名的變量)。

您應該改用currentActiveSlide.html(..)

0
function loadContent(e) { 
    currentActiveSlide = e; 
    var parametros = { 
      "action" : 'slideContent', 
      "rel"  : e.attr('rel') 
    }; 
    jQuery.ajax({ 
      data: parametros, 
      url: template_url + '/ajax.php', 
      type: 'post' 
    }).done(function(data, textStatus, jqXHR) { 
      alert(jqXHR.responseText); 
    }).fail(function(jqXHR, textStatus, errorThrown) { 
      alert(errorThrown); 
    }); 
} 

查看對您的腳本所做的更改。你在變量聲明中有一個無關的逗號。此外,您的successerror方法不會按照您所佈置的格式進行響應。

但是,對你來說 - 這個問題非常像這個:What is max size of ajax response data?。 而這一個:What is the maximum possible length of a query string?

+0

仍然沒有運氣:( – Ultranuke