Как получить текст запроса при серверной ошибке?

$.ajax({
    type: 'POST',
    url: 'post.php',
    data: '&param=' + param,
    success: function(response){
        try { 
            response = jQuery.parseJSON(response); 
        } catch (e) { 
            console.log(param);
        }
        console.log('ok');
    }
});

Если таких запросов много и одновременно, то велика вероятность, что param при ошибке уже будет не тем, что был отправлен в запросе. Вопрос такой: как при ошибке получить ровно то значение param какое было отправленно этим запросом?

Желательно без оборачивания и без того много-вложенного ajax'са в

(function(param) {
    // здесь param не будет изменяться извне
})(param);

Ответы (1 шт):

Автор решения: Dmitry

В контексте выполнения функции success() ключевое слово this будет указывать на объект, который вы передали функции $.ajax(). Вы можете сделать так:

console.log(this.data);
// вернет строку '&param=${param}, 
// где ${param} – значение переменной param в момент вызова функции $.ajax()

Или даже определить свое свойство, например my_param

$.ajax({
    type: 'POST',
    url: 'post.php',
    data: '&param=' + param,
    my_param: param,                                // ← определили
    success: function(response){
        try { 
            response = jQuery.parseJSON(response); 
        } catch (e) { 
            console.log(this.my_param);             // ← используем
        }
        console.log('ok');
    }
});
→ Ссылка