2009-10-12 4 views
0

Existe-t-il un moyen de demander des thèmes Kuler en utilisant AJAX, puis de stocker les thèmes dans un tableau ou quelque chose de ce genre? J'ai la clé de l'API et vérifié que cela fonctionne. Mais je ne peux pas sembler le faire fonctionner avec AJAX ...: \Obtention de thèmes Kuler avec AJAX

$.ajax({ 
    url:"http://kuler-api.adobe.com/rss/search.cfm", 
    data: {"searchQuery":"blue", "key":"Wh47EV3R7HEK3YI5"}, 
    success: function(data) { 
    console.log(data); 
    }, 
    error: function(xhr, txt, err) { 
    //I always end up here... :\ 
    console.log("error text: " + txt); 
    console.log("error message: " + err); //undefined 
    } 
}); 

Le soi-disant documentation est d'aucune aide ...

modifier: J'ai aussi essayé ceci:

$.get("http://kuler-api.adobe.com/rss/search.cfm", 
     {"searchQuery":"blue", "key":"Wh47EV3R7HEK3YI5"}, 
     function(data) { 
     console.log(data); 
     } 
); 
+0

Je souhaite avoir le temps d'obtenir une réponse complète, mais il semble que vous devriez demander des données en utilisant la méthode GET et vous devriez vous attendre une réponse XML. –

+0

Ouais, j'ai aussi essayé le '$ .get()'. Et je suis pleinement conscient du fait que je m'attends à XML. Mais pour l'instant, je veux juste que l'appel fonctionne ... – peirix

+0

Je suis à peu près sûr que c'est jQuery que vous avez dans votre exemple de code, mais en demandant ce genre de chose, il serait bon de dire explicitement $() vous appelez. –

Répondre

2

Le problème est que votre navigateur ne permet pas demandes-domaine-cross avec ajax. Google pour ce problème (demande interdomaine ajax)

Fondamentalement, vous servir votre contenu et ce ajax/javascript de dire http://www.mydomain.com mais le script tente de faire un appel à http://kuler-api.adobe.com ce qui est interdit pour des raisons de sécurité . J'ai également tendance à oublier parfois ceci, c'est pourquoi je ne l'ai pas attrapé immédiatement.

La solution consiste à configurer un script de passerelle sur votre serveur qui effectue la requête en votre nom et renvoie les données en réponse à l'appel ajax. (Assurez-vous de sauvegarder le script afin qu'il ne puisse pas être utilisé comme proxy ouvert)

+0

Désolé. Faute de frappe. Il dit searchQuery dans mon code ... – peirix

+0

a changé la réponse .. – jitter

+0

Bien sûr. Celui-là ne cesse de me mordre le cul: p – peirix