0

使用 Phil Sturgeon 的Codeigniter REST SERVER,我设置了一个基本的 REST 服务器来与 Backbone 应用程序交互。问题在于,每当应用程序尝试向正确的 URI 发出 DELETE 请求时(例如,api/object/7,其中 7 是相关 ID 号),REST 就会返回 404 Not Found 错误。一点挖掘表明它试图到达控制器内不存在的 7_delete,而不是按应有的方式调用 index_delete。

我检查了请求,它们正在路由到正确的 URL;我还检查了没有设置会干扰的自定义路由,并且没有。建议?

编辑:有关更多详细信息,主干路由设置如下:

urlRoot: 'api/objective/',

同时 CI 中的 Objective 控制器是这样设置的:

class Objective extends REST_Controller {

  /**
   *  Respond to a POST request;
   *  - If given an ID, update an existing record
   *  - If given no ID, create a new record
   */
  public function index_post() {
    // code here...
  }

  /**
   *  Delete an existing record from a passed URL
   */
  public function index_delete($id) {
    // Code here...
  }

  /**
   *  Get a single record
   */
  public function index_get($id) {
    // Code here...
  }

  /**
   *  Get the full objectives list
   */
  public function index_get() {
    // Code here...
  }
}

这与原始示例文件中提供的示例很接近。然而,CI 路由没有任何设置。

4

1 回答 1

-1

当您使用这样的网址时,也许很容易http://example.com/api/objective/deletecontent/id/7

    public function deletecontent_get() {
        if(!$this->get('id')) {$this->response(null,400)}
          $run = $this->some_model->delete_content_by_id($this->get('id));
          if($run) $this->response(true,200);
          else $this->response(null,304);
    }
于 2013-09-13T19:59:54.520 回答