Pourquoi un « 200 OK » demande jQuery GET retourne une chaîne vide lors de la lecture Tumblr « aimé » messages à l'aide de base Auth?

StackOverflow https://stackoverflow.com/questions/4171776

  •  09-10-2019
  •  | 
  •  

Question

... quand je peux accéder aux données en utilisant l'URL directe » http://www.tumblr.com/api/likes?email=myemail@gmail.com&password=mypassword&debug=1 , ce qui me donne les messages que je recherche:

Array
(
    [posts] => Array
        (
            [0] => Array
                (
                    [id] => 1482002179
                    [url] => http://staff.tumblr.com/post/1482002179
                    [url-with-slug] => http://staff.tumblr.com/post/1482002179/the-new-dashboard-for-iphone
                    [type] => photo
                    [date-gmt] => 2010-11-04 21:19:33 GMT
                    [date] => Thu, 04 Nov 2010 17:19:33
                    [bookmarklet] => 0
                    [mobile] => 0
                    [feed-item] => 
                    [from-feed-id] => 0
                    [unix-timestamp] => 1288905573
                    [format] => html
                    [reblog-key] => 8LVzAqTT
                    [slug] => the-new-dashboard-for-iphone
                    [liked] => 1
                    [note-count] => 2378
                    [tumblelog] => Array
                        (
                            [title] => Tumblr Staff
                            [name] => staff
                            [cname] => 
                            [url] => http://staff.tumblr.com/
                            [timezone] => US/Eastern
                            [avatar_url_16] => http://28.media.tumblr.com/avatar_013241641371_16.png
                            [avatar_url_24] => http://26.media.tumblr.com/avatar_013241641371_24.png

... et ainsi de suite.

Mais pas de chance lorsque je tente d'obtenir le même en utilisant le code jQuery où j'utilise cette demande GET avec authentifié lu comme indiqué dans les Tumblr API REST docs:

   $.GET(
     "http://www.tumblr.com/api/likes", 
     { email: "myemail@gmail.com", password: "mypassword" }
   );

Je le suivi des réponses à l'aide Firebug. Statut: 200 OK. Réponse: vide . XML:. aucun élément trouvé

Tracing la réponse à l'aide:

   $.GET(
     "http://www.tumblr.com/api/likes", 
     { email: "myemail@gmail.com", password: "mypassword" },
     function( data ){ 
        alert( data ); 
     }
   );

affiche une vide message d'alerte.

J'obtenir le même résultat, peu importe où je lance le code de ce fichier est:. ///, localhost (XAMPP), mon propre serveur ou directement à partir de mon thème sur mysite.tumblr.com

Am quelque chose que je manque? Je pourrais y parvenir avec JavaScript + PHP, cURL etc, mais je suis à la recherche de solutions JavaScript uniquement.

Était-ce utile?

La solution

Il me semble que vous êtes en cours d'exécution dans le rel="nofollow"> même origine politique. Vous ne pouvez pas utiliser Ajax pour charger des données d'un peu partout, vous êtes limité à des données de chargement de la même origine que le document original (pas le script, le document HTML).

En supposant que le problème est, alors:

Si les deux le navigateur et le soutien du site distant CORS et votre origine est acceptable le site distant, vous pouvez utiliser. Mais notez que pour le moment, seuls quelques navigateurs supportent (et IE ne supporte que si vous faites un JSONP si tumblr supporte, cependant, qui a le soutien jQuery dans son .get appel (non .GET comme dans vos exemples de code).

Une autre option consiste à utiliser Yahoo! Query Language comme proxy inter-domaines.

Autres conseils

Êtes-vous sûr que votre obtenir un 200? peut-être essayer ce pour être sûr que la réponse devrait = « succès » si tout est bien passé -. pour autant que je suis conscient de la fonction de rappel est appelée quel que soit le résultat

$.GET(
 "http://www.tumblr.com/api/likes", 
 { email: "myemail@gmail.com", password: "mypassword" },
 function( data, response ){ 
    alert( response ); 
 }

);

Peut-être simple de quelque chose comme un / à la fin de l'URL que vous êtes la

Je fais généralement des postes comme celui-ci ajax

$.post(
 "http://www.tumblr.com/api/likes", 
 { email: "myemail@gmail.com", password: "mypassword" },
 function( data, response ){
    if(response == "success")
    {
        //inject data into page
    }
    else
    {
        alert("Ooops something went wrong... please try again.");
    }

 }

);

Et la documentation de $ Etats .get que:

Si une requête avec jQuery.get () renvoie un code d'erreur, il échouera en silence à moins que le script a également appelé la méthode globale .ajaxError ().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top