Return fake jqXHR from custom Ajax method
Looking at the documentation for $.ajax reveals a beforeSend option that would allow you to cancel the request before it's sent by returning false.

$.rpc = function(method, args) {
    var beforeSend = function () {
        return method &amp;&amp; 'string' !== typeof method;        
    }

    return $.ajax({
        type: 'POST',
        url: '/rpc',
        data: { method: method, params: args },
        beforeSend: beforeSend
    }); 
};