2012-03-25 146 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