Разрешить метод HTTP OPTIONS в Zend 1.11.6

Я пытаюсь включить Cross Origin Resource Sharing (CORS) для старого проекта, выполненного в Zend 1.11.6, и проблема, похоже, является исключением, возникшим при первоначальном летном тестировании. 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"}
}

Я отследил сообщение об ошибке, чтобы Zend_Controller_Action.__call() в library/Zend/Controller/Action.php. Мой вопрос: где находится подходящее место для изменения структуры, чтобы разрешить этот запрос? Я в порядке с этим на контроллере на основе контроллера или всего проекта.

Также я включил CORS через .htaccess который я вставил ниже:

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;
}

1

Решение

Взгляните на Zend_Rest_Route :: match (), вам нужно научить / расширить его, чтобы отобразить метод OPTIONS на optionsAction () в вашем контроллере.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector