在$ .ajax请求之后,有没有办法从响应中获取请求的参数?

时间:2014-02-13 20:22:40

标签: jquery ajax response

如果我进行jQuery AJAX调用:

 $.ajax({url: 'example.com', data: {bar: 2}).done(handleResponse);

有什么办法可以从响应处理程序中获取传递给AJAX请求的参数(即数据选项)?换句话说,我希望能够做到:

handleResponse = function(response) {
     var requestData = response.something.something.data;
     // requestData.bar == 2
}

为了清楚起见,我知道我可以通过使用像下划线这样的库中的“部分”来实现它,即:

 var data = {bar: 2};
 $.ajax({url: 'example.com', data: data).done(_(handleResponse).partial(data));

handleResponse = function(data, response) {...

但我只是想知道是否有任何其他(更干净)的方法来使用jQuery传递给响应处理程序的参数。

1 个答案:

答案 0 :(得分:4)

我不太了解你的其余代码,但考虑到第一部分:

$.ajax({url: 'example.com', data: {bar: 2}).done(handleResponse);

您可以访问处理程序中的数据:

handleResponse = function(response) {
     var requestData = this.data;
     // requestData.bar == 2
}

this包含传递给$.ajax的选项,除非您还传递了context选项。