2010-11-23 13 views
0

Ich brauche eine Json-Anforderung mit der URL-Struktur zu machen wie: site.com/page?id=123Set Variable als Eigenschaft in einer JSON Anfrage mit jQuery

Wie gebe ich die Variable über die Anfrage und dann die Ergebnisse auf die Seite zurückgeben?

<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

Ist "http: // site.com/page" Ihre Website oder eine Website von Drittanbietern? Wenn Letzteres auftritt, stoßen Sie auf Probleme mit der gleichen Herkunft. –

+0

Ich hoffe, zwei Prozesse wie diese zu laufen ... eine ist die gleiche Seite, die andere ist eine Unterdomäne der Seite. Müsste ich JSONP verwenden? – Zac

Antwort

1

wie diese versuchen:

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

Auch würde ich empfehlen Sie unaufdringliche Javascript verwenden:

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

Und dann in einer separaten JavaScript-Datei:

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

Auch Sie sollten sicherstellen dass Sie die same origin policy respektieren oder Ihre AJAX-Anfrage möglicherweise nicht funktioniert. Stellen Sie sicher, dass http://site.com/page dieselbe Domäne ist wie die Domäne, die die Seite zum Senden der AJAX-Anforderung hostet. Wenn dies nicht der Fall ist, können Sie Ihren Server so konfigurieren, dass er eine JSONP-Antwort sendet.

+0

Danke Danke! Müsste ich JSONP verwenden, wenn ich es an eine Subdomain sende? – Zac

+0

Sehen Sie sich die Tabelle im Artikel [self source policy] (http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules) an. In welchem ​​Fall bist du? –

+0

Süß das funktioniert! Ich kann es in der Get-Anfrage sehen. Kannst du mir bitte ein bisschen mehr erklären, wie ich die Ergebnisse manipuliere, um sie im #results div zu zeigen? – Zac