L'accès JSON service à partir de localhost ou file://
Je fais une page html destiné à être exécuté localement sur un PC, de préférence sans un serveur local runing (file://). Je suis également à l'aide de jQuery pour faire la manipulation/AJAX un peu plus facile.
Je suis en train de charger 2 les résultats de l'API twitter, mais j'obtiens une erreur. Le code est comme suit:
$.getJSON("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=someuser&count=9", {},
function (data) {
$.each(data.items, doSomething1);
});
$.getJSON("http://search.twitter.com/search.json?q=somequery&result_type=recent&count=9", {},
function (data) {
$.each(data.items, doSomething2);
});
J'ai aussi essayé le code suivant, mais il n'a pas changé le résultat.
$.getJSON("http://api.twitter.com/1/statuses/user_timeline.json",
{
count: "9",
screen_name: "someuser"
},
function(data) {
$.each(data.items, updateAWTweets);
});
$.getJSON("http://search.twitter.com/search.json",
{
q: "somequery",
result_type: "recent",
count: "9"
},
function(data) {
$.each(data.items, updateHashTagTweets);
});
J'obtiens l'erreur suivante dans google chrome (sur un serveur localhost):
XMLHttpRequest cannot load http://search.twitter.com/search.json?q=somequery&result_type=recent&count=9. Origin http://localhost:62153 is not allowed by Access-Control-Allow-Origin.
ou (avec un file://lien)
XMLHttpRequest cannot load http://api.twitter.com/1/statuses/user_timeline.json?screen_name=someuser&count=9. Origin null is not allowed by Access-Control-Allow-Origin.
Personne ne sait comment je peux résoudre ce problème?
- Cette erreur est un cross-site scripting avertissement.
- double possible de jQuery.getJSON pas de travail pour twitter
Vous devez vous connecter pour publier un commentaire.
Vous êtes en cours d'exécution dans le de même la politique de l'origine restriction de votre script ne peut pas accéder à tous les autres domaines en dehors de celui qu'il a été chargé de.
Vous pourriez donner JSONP essayer - c'est une solution commune à l'obtention de données sur plusieurs domaines:
Votre code devrait ressembler à ceci (notez l'ajout de
callback=?
à l'URL):Une autre option est d'installer un proxy, vous pouvez utiliser Apache httpd comme un proxy/reverse proxy pour contourner cette restriction.
length
bien sur ce que vous pensez est un tableau, mais est en faitundefined
. S'assurer que vos données existe réellement (if(!assumedArray){//handle missing data}else{//do usual processing}
. Ce n'Twitter de retour quand il n'y a pas de résultats pour une requête de recherche? Aussi, jetez un oeil à stackoverflow.com/questions/3040069/... pour quelques suggestions sur la façon de débogage (et d'autres) des exceptions.Ajouter le JQuery JSONP de rappel à l'URL
De ne pas utiliser cette
$.getJSON()
Son pas souple..
Vous pouvez utiliser
ce qui est facilement accessible par le codage html....