2012-03-25 11 views
0

Ich beabsichtige, eine kleine API zu erstellen, die einige PHP-Funktionen ausführen wird, aber nur von js implementiert werden kann.
Ich möchte eine ähnliche Lösung für die Facebook-SDK erstellen.
Also habe ich eine PHP-Datei namens rest.php
und eine js-Datei nammed conjs.js jetzt muss ich eine Ajax-Anfrage aus der Datei conjs.js durchführen, aber ich bekomme eine undefinierte beim Versuch, eine Ajax-Anfrage zu verlangen.
1) Wie soll ich das bauen?
2) Was mache ich falsch?
REST API mit JS-Client

rest.php

<?php 

echo "Hello from ".$_GET['name']; 
?> 

conjs.js -> auf der HTML-Seite von Client enthalten (ähnlich

connect.facebook.net/en_US/all.js off facebook)

function getDev(){ 
$.ajax({ 
    url: 'http://mydomain/rest.php', 
    type: 'GET', 
    data: 'Name=John', // or $('#myform').serializeArray() 
    success: function(data) { return('Get completed '+data); } 
}); 
} 

Client-smaple hTML-Seite : -nicht auf domänen

<html><head> <script src="http://mydomain/conjs.js"></script></head><body> 
<script> 
alert(getDev()); 
</script> 
</body></html> 

Vielen Dank im Voraus :)

+0

Sind Sie von der gleichen Domain anfordern? – Archimedix

+0

@Archimedix Nein, der ganze Punkt ist es aus einer Remote-Domain zu machen – funerr

Antwort

3

Sie benötigen asynchronous Natur ein callback aufgrund von Ajax zu verwenden.

Ein Rückruf ist eine Funktion, die als Argument an eine andere Funktion übergeben wird, die den Rückruf an einem interessanten Punkt ausführt. Im folgenden Fall befindet es sich im Erfolgsblock der Ajax-Antwort, die als interessant gilt.

Versuchen Sie folgendes:

function getDev(callback){ 
$.ajax({ 
    url: 'http://mydomain.com/rest/rest.php', 
    type: 'GET', 
    data: 'Name=John', // or $('#myform').serializeArray() 
    success: function(data) { 
     callback('Get completed '+data); 
    } 
}); 
} 

Später beim Aufruf:

<script type="text/javascript"> 
getDev(function (response) { 
    alert(response); 
}); 
</script> 
+0

Ah, und das :) –

+0

Gibt es irgendwelche Artikel, die ich über diese "Natur" lesen könnte? – funerr

+1

@ agam360 Schauen Sie sich die Links in meiner Antwort an. Wenn Sie "JavaScript + Callback" googlen, erhalten Sie viele gute Ergebnisse. Zum Beispiel: http://recurial.com/programming/understanding-callback-functions-in-javascript/ –

1

AFAIK $ _GET [] Groß- und Kleinschreibung. Also entweder senden Sie Kleinbuchstaben 'name = John' oder lesen Sie die richtige $ _GET ['Name']

+0

Ja ich habe das vergessen;) – funerr