Javascript 如何在jQuery$.get/ajax请求中获取请求url
我有以下代码:Javascript 如何在jQuery$.get/ajax请求中获取请求url,javascript,jquery,Javascript,Jquery,我有以下代码: $.get('http://www.example.org', {a:1,b:2,c:3}, function(xml) {}, 'xml'); 在发出请求后(在回调或其他方式中),是否有方法获取用于发出请求的url 我想要输出: http://www.example.org?a=1&b=2&c=3 我无法让它在$.get()上工作,因为它没有complete事件 我建议像这样使用$.ajax() $.ajax({ url: 'http://www.e
$.get('http://www.example.org', {a:1,b:2,c:3}, function(xml) {}, 'xml');
在发出请求后(在回调或其他方式中),是否有方法获取用于发出请求的url
我想要输出:
http://www.example.org?a=1&b=2&c=3
我无法让它在
$.get()
上工作,因为它没有complete
事件
我建议像这样使用$.ajax()
$.ajax({
url: 'http://www.example.org',
data: {'a':1,'b':2,'c':3},
dataType: 'xml',
complete : function(){
alert(this.url)
},
success: function(xml){
}
});
由于jQuery.get只是jQuery.ajax的简写,另一种方法是使用后者的
context
选项,如下所述:
所有回调中的this
引用是在设置中传递给$.ajax
的上下文选项中的对象;如果未指定上下文,则这是对Ajax设置本身的引用
所以你会用
调用get()方法时,需要传递url和参数。所以为什么不在回调函数中为完整的url构建一个字符串呢?太聪明了!我很惊讶这个.url在成功回调中不可用。在angularjs中有没有同样的方法?我不确定。。我不熟悉angularjs。。。你应该单独提出一个问题…@BennyNeugebauer答案不是使用相应的
jqXHR.success()
或jqXHR.complete()
方法。ajax回调选项success
和complete
未被弃用。@BennyNeugebauer不正确。从jQuery版本3.4.1开始,jQuerysuccess
和complete
回调未被弃用。谢谢。我的url帮助调试Rails中的表单提交错误。已使用MyResource controller的“新建”操作路径创建新资源。AJAX请求到自定义Rails控制器动作“change\u partial”的链接。在AJAX选项中,我使用了type:'GET',url:'change\u partial',dataType:'html'
。单击称为后端控制器操作的链接,返回呈现的HTML部分。但提交表单时,验证错误呈现为“创建”路径,单击链接将导致错误。通过更改url:“我的资源/更改部分”修复
$.ajax('http://www.example.org', {
dataType: 'xml',
data: {'a':1,'b':2,'c':3},
context: {
url: 'http://www.example.org'
}
}).done(function(xml) {alert(this.url});