2

J'essaie d'obtenir la réponse de tête avec un XMLHttpRequest en chrome retrive l'URL de l'emplacement d'une URL comprimé, mais il échoue:TETE XMLHttpRequest de chrome

var ajax = new XMLHttpRequest(); 
ajax.onreadystatechange = function() { if (ajax.readyState == 4) alert(ajax.getResponseHeader("Location")) }; 
ajax.open('HEAD', "http://bit.ly/4Agih5", false); 
ajax.send(); 

// Refused to get unsafe header "Location" 
// Error: NETWORK_ERR: XMLHttpRequest Exception 101 
+0

cela échoue seulement sur Chrome? Je ne suis pas si sûr que vous pouvez faire ce que vous essayez de traverser le domaine. –

Répondre

4

Comme l'a indiqué Mohamed, vous devrez créer un service proxy sur le même site que celui sur lequel vous hébergez votre page car il s'agit d'un domaine inter-domaines. demande.

Cela devrait échouer dans tous les navigateurs, sauf si vous avez explicitement autorisé les demandes inter-domaines dans votre navigateur. Si bit.ly prend en charge les requêtes interdomaines via le W3C spec pour Access-Control-Allow-Origin, votre code fonctionnera.

+0

Votre langage est un peu bizarre quand on parle de la spécification W3C Access Control. Vous faites également référence à un en-tête non existant ('Access-Control-Allow-Max-Age') alors que vous vouliez réellement parler de' Access-Control-Allow-Origin'. –

+0

@Bruce, le lien est correct, mon taper est faux. – Kinlan

+0

Correction pour vous (et les gens qui viennent après) – mplungjan

1

Vous ne pouvez pas faire les requêtes XHR inter-domaines. Utilisez un langage de programmation Web tel que JSP/Python/PHP/Ruby/etc.