2012-12-28 71 views
5

有沒有什麼辦法可以攔截通過jquery製作的ajax請求,將其他變量插入到它中?攔截Jquery AJAX請求以插入其他變量?

我知道.ajaxStart()可以讓你註冊一個回調,當ajax請求開始時觸發一個事件,但是我正在尋找的是一種方法來取消該Ajax請求,如果它符合某些條件(例如url),插入一些將更多變量放入其內容中,然後提交。

這是一個第三方軟件的插件,它的代碼不能直接更改。

編輯:看起來像.ajaxSetup()可以讓你設置一些與ajaxRequests相關的全局變量。如果我註冊了beforeSend函數,那麼該函數是否能夠取消請求以滿足特定條件而創建另一個函數?

+0

你剛剛嘗試過返回'false'嗎?這可以阻止很多事件,儘管我不知道它是否適用於此事件。或'event.preventDefault()'? – Colleen

+0

有趣的,我會嘗試event.preventDefault .. –

+0

可能重複[如何停止ajax請求](http://stackoverflow.com/questions/9374305/how-to-stop-ajax-request) –

回答

6

想通了,這是我使用的代碼:

jQuery(document).ready(function() 
{  
    var func = function(e, data) 
    {  
     //data.data is a string with &seperated values, e.g a=b&c=d&.. . 
     //Append additional variables to it and they'll be submitted with the request:  
     data.data += "&id=3&d=f&z=y"; 
     return true; 
    }; 
    jQuery.ajaxSetup({beforeSend: func}); 
    jQuery.post('example.php', {a : 'b'}, 'json');  
}); 

要取消請求,返回從func虛假似乎工作。