My validator needs to know if it is a full request or an ajax request. In my current solution I check the http request header for the X-Requested-With element:
X-Requested-With
I'd that it is a reliable way to check it. This is exactly how for example Django checks for AJAX requests:
def is_ajax(self): return self.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'
Also listed here as such: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields