从jquery调用rest api服务

时间:2014-06-02 12:49:43

标签: php jquery json rest

我正在尝试理解restful services.i可以创建一个类并在其中定义一个函数但是当我通过jquery调用它时它返回null并且当我通过在地址栏中输入url直接调用它返回一个json响应

这是代码

class Api extends REST 
{
        public function processApi()
        {
            $func = strtolower(trim(str_replace("api/","",$_REQUEST['request'])));

            if((int)method_exists($this,$func) > 0)
            {   
                 $this->$func();  
            }
            else
            {            
                 $this->response('',404);               // If the method not exist with in this class, response would be "Page not found".
            }
        }

        private function json($data)
        {
            if(is_array($data))
            {
                return json_encode($data);
            }
        }

        public function demo()
        {
            $error = array('status' => '200', "msg" => "OK");
           $this->response($this->json($error), 200);
        }

}

$api = new Api;
$api->processApi();

我只是想从jquery中调用demo方法。这就是我正在尝试的

$.post("db/api/demo",
    function(data,status){
      data = jQuery.parseJSON(data);
      alert("Data: " + data + "\nStatus: " + status);
});

我正在通过jquery获得响应,当演示方法是这个

public function demo()
{
   $error = array('status' => '200', "msg" => "OK");
   echo json_encode($error);
   //$this->response(json_encode($error), 200);
}

1 个答案:

答案 0 :(得分:1)

您应该将数据类型发送到服务器。

试试这段代码:

$.post( "db/api/demo")
      .done(function( data ) { 
        $.each(data, function(index, element) {
            alert('Data: ' + element.data + ' Status: ' + element.status);   
        });
      }, "json");