Comment obtenir du contenu à partir d'une URL distante via ajax?
jQuery ajax request being block because Cross-Origin
Journal de la console
Demande d'origine croisée bloquée: la même politique d'origine interdit la lecture de la ressource distante sur http://www.dailymotion.com/embed/video/x28j5hv . (Raison: en-tête CORS 'Access-Control-Allow-Origin' manquant).
Demande d'origine croisée bloquée: la même politique d'origine interdit la lecture de la ressource distante sur http://www.dailymotion.com/embed/video/x28j5hv . (Raison: la demande CORS a échoué).
Code
$.ajax({
url: "http://www.dailymotion.com/embed/video/x28j5hv",
type:'GET',
contentType: "html",
crossDomain:true,
success: function(data){
//$('#content').html($(data).html());
var src = $(data).html();
alert(src);
return false;
}
Essayez d'utiliser JSONP
dans votre appel Ajax. Il contournera la même politique d'origine.
http://learn.jquery.com/ajax/working-with-jsonp/
Essayez l'exemple
$.ajax({
url: "https://api.dailymotion.com/video/x28j5hv?fields=title",
dataType: "jsonp",
success: function( response ) {
console.log( response ); // server response
}
});
Il n'y a rien que vous puissiez faire de votre côté (côté client). Vous ne pouvez pas activer les appels crossDomain vous-même, la source (dailymotion.com) doit avoir COORS activé pour que cela fonctionne.
La seule chose que vous pouvez vraiment faire est de créer un script proxy côté serveur qui le fait pour vous. Utilisez-vous des scripts côté serveur dans votre projet? PHP, Python, ASP.NET, etc.? Si c'est le cas, vous pouvez créer un script "proxy" côté serveur qui fait l'appel HTTP à dailymotion et renvoie la réponse. Ensuite, vous appelez ce script à partir de votre code Javascript, car ce script côté serveur est sur le même domaine que votre code de script, COORS ne sera pas un problème.
Essayez avec la demande cURL pour le domaine croisé.
Si vous travaillez via des API tierces ou obtenez des données via CROSS-DOMAIN, il est toujours recommandé d'utiliser le script cURL (côté serveur) qui est plus sécurisé.
Je préfère toujours le script cURL.