在使用jQuery执行AJAX请求后,我想使用以下代码更新URL
history.pushState(object, title, new_url)
所以我写了下面的代码
$.ajax({
url: url,
success: onSuccess
})
var onSuccess = function() {
...
history.pushState(object, title, new_url)
}
问题是,我去的URL进行AJAX调用会返回302代码,所以我需要一种方法来找出最终的URL在哪里。
有没有办法找到这些信息?
答案 0 :(得分:2)
你能看出这是否适合你的情况..
$.ajax({
url: url,
success: function(data, textStatus, xhr),
})
var onSuccess = function(data, xhr, textStatus) {
...
if( xhr.status == 200 ) history.pushState(object, title, new_url)
}
编辑:
我已经使用我的实时网站测试了我的console.log'ed最终目标网址:
(function($){
var xhr;
var _orgAjax = jQuery.ajaxSettings.xhr;
jQuery.ajaxSettings.xhr = function () {
xhr = _orgAjax();
return xhr;
};
$.ajax({
url: "https://vizkultura.hr/dizajn",
success: function(data) {
console.log( xhr.responseURL );
},
});
})(jQuery)
输出新网址:https://vizkultura.hr/dizajn-07-12/
尝试@your结束,看看它是否合适, 干杯,k