web-dev-qa-db-fra.com

obtenir jquery entre domaines

J'ai vu quelques exemples de domaine croisé avec ajax mais cela ne fonctionne pas.

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    </head>
    <body>
        <script type="text/javascript" >
            $(document).ready(function () {
                var url = "http://api.Twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1";

                $.get(url, function (data) {
                    console.log(data)
                    alert(data);
                });
            });
        </script>
    </body>
</html>

J'essaye sur chrome et l'erreur suivante est donnée:

XMLHttpRequest cannot load http://api.Twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1. Origin null is not allowed by Access-Control-Allow-Origin. 
18
Ajouve

Vous ne pouvez pas utiliser $.get parce que cela fait un appel ajax, qui sera cross-Origin et donc bloqué par la même politique d'origine , et l'API Twitter à laquelle vous essayez d'accéder ne prend pas en charge Cross -Origin Resource Sharing (ou si c'est le cas, il n'autorise pas Origin null ou http://jsbin.com, qui est celui que j'ai essayé).

L'API prend en charge JSONP (qui n'est pas un véritable appel ajax), cependant, il suffit donc de changer le $.get à un $.ajax spécifiant JSONP fonctionne:

$.ajax({
  url: url,
  dataType: "jsonp",
  success: function (data) {
    console.log(data)
    alert(data);
  }
});

exemple en direct | Source

42
T.J. Crowder