【问题标题】:How do I make an ajax call with CakePHP 3 (alpha/beta versions)如何使用 CakePHP 3(alpha/beta 版本)进行 ajax 调用
【发布时间】:2014-08-25 15:44:13
【问题描述】:

通常,进行 ajax 调用相当简单。您只需解锁控制器中的操作并在您使用 ajax 的函数中指定:

public function beforeFilter(Event $event) {
    parent::beforeFilter($event);
    $this->Auth->allow(['checkUsername']);
    $this->Security->unlockedActions =['checkUsername'];
}

public function checkUsername() {
    $this->request->allowMethod(['ajax']);  
    // ...
}

不幸的是,在 CakePHP 3 中,这给了我下面的黑洞错误作为响应:

code: 400
message: "The request has been black-holed"
url: "/users/checkUsername.json"

当它是 /users/checkUsername(而不是 .json,这是其他地方推荐的解决方案)时,它也以相同的方式工作。有什么想法吗?

【问题讨论】:

  • 嗯,它应该像在 2.x 中一样工作。当您停用 Sec 时,它确实有效。组件一起,对吧?
  • 实际上,取出安全组件会破坏整个站点。这是怎么回事,也许这是问题的一部分......?

标签: ajax cakephp cakephp-3.0


【解决方案1】:

在 CakePHP 3.0 中应该是:

public function beforeFilter(Event $event) {
  parent::beforeFilter($event);
  $this->Auth->allow(['checkUsername']);
  $this->Security->config('unlockedActions', ['checkUsername']);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-13
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多