我正在使用Ajax请求从我的服务器获取数据。我得到的数据来自几个地方(网址)。我需要一种方法来区分来自一个URL的数据和来自另一个URL的数据。 请求是这样的:
function initRequest(url)
var request = $.ajax({
url: url,
contentType: 'application/json',
dataType: 'json',
type: "GET"
});
request.done(function(msg) {
//i need to know what was the url of this request
//request.url is undefined
}
}
我该怎么做? 我提到我不能使用数据本身(msg)来了解源URL。
答案 0 :(得分:1)
由于您无法修改返回的JSON,请在回调中使用ajax对象的url:
.done(function(msg) {
var url = this.url;
});
答案 1 :(得分:1)
您可以在完成回调中使用变量url
,因为它是一个闭包变量
function initRequest(url)
var request = $.ajax({
url: url,
contentType: 'application/json',
dataType: 'json',
type: "GET"
});
request.done(function(msg, status, xhr) {
//you can use url here because it is a closure function
alert(url)
}
}
答案 2 :(得分:1)
如果.done
函数位于initRequest
的词法范围内,则只需直接访问url
参数 - 它仍在范围内。
否则,只要您在context
来电中未提供备用$.ajax
设置,您就可以在this.url
回调中访问.done
- default jQuery使用AJAX对象(恰好包含此属性)调用所有AJAX回调作为上下文。