2010-11-23 9 views
0

je dois faire une demande JSON avec la structure url comme: site.com/page?id=123variable Définir comme propriété dans une requête JSON avec jQuery

Comment puis-je passer la variable à travers la demande et renvoie les résultats à la page?

<input type='text' id='theInput'> 
    <input onclick='getIt(); return false;' /> 
    <div id="results"></div> 
    <script> 
     function getIt(){ 
     var x = ($j('#theInput').val()); 
     $j.getJSON("http://site.com/page?id=", 
      { 
     //how do i append x to request? 
      }, 
     ); 
     } 
    </script> 
+0

Est-ce que 'http: // site.com/page' est votre site ou un site tiers? Si ce dernier vous rencontrerez des problèmes de même origine. –

+0

J'espère lancer deux processus comme celui-ci ... l'un est le même site, l'autre est un sous-domaine du site. Devrais-je utiliser JSONP? – Zac

Répondre

1

Essayez comme ceci:

var id = $j('#theInput').val(); 
$j.getJSON('http://site.com/page', { id: id }, function(result) { 
    // success 
}); 

Aussi je vous conseille d'utiliser le Javascript discret:

<input type="text" id="theInput" /> 
<input type="button" id="btn" value="Click me" /> 
<div id="results"></div> 

Et puis dans un fichier javascript séparé:

$(function() { 
    $('#btn').click(function() { 
     var id = $j('#theInput').val(); 
     $j.getJSON('http://site.com/page', { id: id }, function(result) { 
      // manipulate the results 
     }); 
     return false; 
    }); 
}); 

également vous devriez vous assurer que vous respectez le same origin policy ou votre demande AJAX pourrait ne pas fonctionner. Vérifiez que http://site.com/page est le même domaine que celui qui héberge la page envoyant la requête AJAX. Si ce n'est pas le cas, vous pouvez configurer votre serveur pour qu'il envoie une réponse JSONP.

+0

Merci Darin! Devrais-je utiliser JSONP si je l'envoie à un sous-domaine? – Zac

+0

Regardez le tableau dans l'article [même politique d'origine] (http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules). Dans quel cas êtes-vous? –

+0

Sweet ça marche! Je peux le voir dans la demande d'obtention. Pouvez-vous m'expliquer un peu plus comment je manipule les résultats à afficher dans le div #results? – Zac

Questions connexes