小编Nar*_*ela的帖子

CakePHP 3 REST API + CORS请求和选项方法

我正在使用CakePHP 3开发REST API。我想公开启用它,因此任何人都可以调用该API。因此,我添加了此处定义的cors标头:http ://book.cakephp.org/3.0/en/controllers/request-response.html#setting-cross-origin-request-headers-cors

我已经在Dispatcher.beforeDispatch和Dispatcher.beforeDispatch上实现了EventListener,以准备cors标头。

class ApiResponseHeaders implements EventListenerInterface
{

    /**
     * Event bindings
     *
     * @return array
     */
    public function implementedEvents()
    {
        return [
            'Dispatcher.beforeDispatch' => [
                'callable' => 'beforeDispatch',
                'priority' => 0
            ],
            'Dispatcher.afterDispatch' => [
                'callable' => 'afterDispatch',
                'priority' => 99999
            ]
        ];
    }

    public function beforeDispatch(Event $event)
    {
        $request = $event->data['request'];
        if ('OPTIONS' === $request->method()) {
            $event->stopPropagation();
        }
    }

    public function afterDispatch(Event $event)
    {
        $request = $event->data['request'];
        $response = $event->data['response'];

        $response->cors($request)
                ->allowOrigin('*')
                ->allowMethods(['GET', 'POST', 'OPTIONS']) …
Run Code Online (Sandbox Code Playgroud)

php rest cors angularjs cakephp-3.0

7
推荐指数
2
解决办法
6024
查看次数

标签 统计

angularjs ×1

cakephp-3.0 ×1

cors ×1

php ×1

rest ×1