【问题标题】:Allow HTTP OPTIONS Method in Zend 1.11.6Zend 1.11.6 中允许 HTTP OPTIONS 方法
【发布时间】:2015-01-24 05:05:14
【问题描述】:

我正在尝试在 Zend 1.11.6 中完成的旧项目上启用跨源资源共享 (CORS),问题似乎是在初始飞行测试 OPTIONS 请求中引发的异常。这是对 HTTP OPTIONS 请求的完整响应:

标题:

Access-Control-Allow-Headers: origin, x-requested-with, content-type
Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Content-Type: application/json
Date: Wed, 26 Nov 2014 00:38:47 GMT
Server: Apache
Transfer-Encoding: chunked
X-Cnection: close

身体

{
    "success": false,
    "data": "Exception",
    "message": "Method \"optionsaction\" does not exist and was not trapped in __call()",
    "request": "/authenticate",
    "version": "v1",
    "parameters": {
    "controller": "authenticate",
    "action": "options",
    "module": "default"
    }
}

我在library/Zend/Controller/Action.php. 中追踪到Zend_Controller_Action.__call() 的错误消息我的问题是:修改框架以允许此请求的适当位置在哪里?我可以按控制器或项目范围在控制器上执行此操作。

另外,我通过.htaccess 启用了 CORS,我粘贴在下面:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin"
Header add Access-Control-Allow-Headers "x-requested-with"
Header add Access-Control-Allow-Headers "content-type"
Header add Access-Control-Allow-Methods "PUT"
Header add Access-Control-Allow-Methods "GET"
Header add Access-Control-Allow-Methods "POST"
Header add Access-Control-Allow-Methods "DELETE"
Header add Access-Control-Allow-Methods "OPTIONS"

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

这是我的身份验证控制器选项操作:

public function optionsAction()
{
    $this->view->data = Array();
    $this->view->success = true;
}

【问题讨论】:

  • 你能显示你的验证控制器的代码吗? (尤其是围绕options动作,这个方法好像少了)
  • 我没有选项操作。我刚加了一个,我会更新帖子的。它没有改变响应。

标签: php apache zend-framework cors


【解决方案1】:

看看 Zend_Rest_Route::match(),你需要教/扩展它来映射 OPTIONS 方法到你控制器中的 optionsAction()。

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2014-09-27
    • 2015-11-25
    • 2013-06-02
    • 2019-05-15
    • 2022-07-26
    • 2018-12-20
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多