Comment obtenir l’URL finale après une redirection Ajax?

Je travaille sur un script AJAX qui envoie une demande GET à une URL abrégée, comme un lien bit.ly. Comment puis-je obtenir l’URL de la page finale / redirigée?

Je peux obtenir les en-têtes de réponse à partir de la page redirigée, mais elle ne semble pas contenir les informations d’URL:

$.ajax({ url: "http://www.thislinkredirects.com", success: function(data, status, xhr) { var response = $(data); }, complete: function(xhr) { console.log(xhr.getAllResponseHeaders()); } }); 

Résultat:

 Date: Tue, 23 Jun 2015 03:22:07 GMT Allow: POST, GET, OPTIONS, PUT, DELETE Server: lighttpd/1.4.35 X-Powered-By: PHP/5.3.3 Transfer-Encoding: chunked Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE Content-type: text/html Access-Control-Allow-Origin: * Access-Control-Allow-Headers: accept, authorization 

Je n’ai pas le contrôle du serveur faisant la demande de get.

Comme j’ai répondu à une question similaire ici: https://stackoverflow.com/a/48445360/1398908

Une meilleure solution consiste à fournir à ajax de jQuery un object xhr personnalisé comme celui-ci:

 var xhr = new XMLHttpRequest(); $.ajax({ url: '/url', type: 'post', data: '...', xhr: function() { return xhr; } }); 

Ensuite, vous pouvez accéder à l’URL actuelle dans n’importe quel rappel

 success: function () { console.log(xhr.responseURL); } 

Essayez de passer jqXHR à ajaxComplete, puis lisez l’en-tête.

L’en-tête doit afficher un champ Location: :.

Essayez ce code …..

 $.ajax({ url: "https://instagram.com/oauth/authorize/?client_id=e40f15a90**c89851d8a66&redirect_uri=http://examle.com&response_type=token", success:function(result,status,xhr){ console.log(xhr.getResponseHeader('Location'));<---NULL } });