Возможно не все используют ангуляр, поэтому скажу решение для нативного javascript:
нужно выполнять ajax-запрос в синхронном режиме (async:false) тогда браузер это будет считать одним потоком, и не возникнет подозрений:
на jquery это выглядит приблизительно так:
$.ajax({
type: 'POST',
async: false,
url: '/path/to',
data: { a: b, c: d },
success: function(response) {
window.open('url', '_blank');
}
});