将AJAX移动到服务器

时间:2015-11-25 20:18:24

标签: ajax rest concrete5 concrete5-5.7

现在我有HTML块,其中涉及一个脚本来调用来自另一个数据库(在concrete5之外)的数据,并且我一直在使用XHTTP Posts来检索数据。

问题: 脚本当前存在于客户端(例如,您可以通过检查元素看到它),我认为它是从客户端设备调用的。一旦我关闭对外部数据库的访问,这就不再适用了。我需要这些请求来自我的网站而不是客户端。

需要: 我知道有一种方法可以将这些请求移到Concrete5中,因此concrete5正在发出请求而不是客户端。我不知道该怎么做。任何建议都会非常感激。

1 个答案:

答案 0 :(得分:0)

你可以通过创建一个终点来实现这一点。这是你网站上一个在被叫时返回数据的地址。

所以例如调用

www.domain.com/api/getusers{id}

可以为用户返回JSON对象。

一个简单的例子。

你可以在你的application / bootstrap / app.php文件中添加

Route::register(
  '/api/getusers/{id}',
  'application\Controller\endpoints::getUsers'
);

然后在application / controllers / endpoints.php中添加一个控制器

<?php
namespace Application\Controller;

use Concrete\Core\Controller\Controller;
use \Concrete\Core\Http\Request;

class Endpoints extends Controller {

    /* Get all a Regions Expeditions */

    public function getUsers()
    {
      $id = Request::getInstance()->get('id');
      $userid = $th->sanitize($id);

            /* Do something with $id */

      echo json_encode($output);
    }
}
?>

可在此处找到更多信息http://c5hub.com/learning/ajax-57-style/