如果我进行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传递给响应处理程序的参数。
答案 0 :(得分:4)
我不太了解你的其余代码,但考虑到第一部分:
$.ajax({url: 'example.com', data: {bar: 2}).done(handleResponse);
您可以访问处理程序中的数据:
handleResponse = function(response) {
var requestData = this.data;
// requestData.bar == 2
}
this
包含传递给$.ajax
的选项,除非您还传递了context
选项。