2012-03-25 284 views
0

我打算創建一個小的api,它會執行一些php函數,但只能由js實現。
我想創建一個類似的解決方案的Facebook的SDK。
所以我創建了一個名爲rest.php
的php文件和一個js文件nammed conjs.js,現在我需要執行來自conjs.js文件的ajax請求,但是當嘗試請求ajax請求時,我得到了一個未定義的請求。
1)我該如何構建?
2)我做錯了什麼?
JS客戶端的REST API

rest.php

<?php 

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

conjs.js - >包括客戶端的HTML頁面上(類似

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 page : - 不是在域 -

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

感謝提前:)

+0

您是否從同一域請求? – Archimedix 2012-03-25 20:43:54

+0

@Archimedix不,整點是從遠程域 – funerr 2012-03-25 21:00:36

回答

3

您需要使用callback由於阿賈克斯的asynchronous性質。

A 回調是一個函數,它作爲參數傳遞給另一個函數,該函數在有趣的點執行回調。在下面的情況下,它在ajax響應的成功塊中被認爲是有趣的。打電話時

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); 
    } 
}); 
} 

後來:

試試這個

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

啊,那:) :) – 2012-03-25 20:47:34

+0

有沒有什麼文章我可以讀到關於這個「性質」? – funerr 2012-03-25 21:02:47

+1

@ agam360查看我答案中的鏈接。如果你谷歌「JavaScript +回撥」,你會得到很多好的結果。例如:http://recurial.com/programming/understanding-callback-functions-in-javascript/ – 2012-03-25 21:36:26

1

AFAIK $ _GET []是區分大小寫的。因此,要麼發送小寫'姓名=約翰'或閱讀正確的$ _GET ['姓名']

+0

是的,我忘記了;) – funerr 2012-03-25 21:03:40