Zend Framework 2 - 如何允许杀死CORS策略:没有'Access-Control-Allow-Origin'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zend Framework 2 - 如何允许杀死CORS策略:没有'Access-Control-Allow-Origin'相关的知识,希望对你有一定的参考价值。

我申请了以下但谷歌浏览器不断显示我的错误。

已被CORS策略阻止:请求的资源上没有“Access-Control-Allow-Origin”标头。因此不允许原点'null'访问。

  public function checkAction() {
    // responsible to send back JSON object
    header('Access-Control-Allow-Origin: *');
    $response = $this->getResponse();
    //$response->setHeader('Access-Control-Allow-Origin', '*');

    $json = array(
     'result' => 'ok',
     'module' => 'ajax',
     'data' => 'test'
   );

   $response->setContent(Json::encode($json));
   return $response;
   exit;
 }

注意:前端:www.javascript.com使用ajax进入后端:www.backend-zendframework.com/rr/check

答案

作品。

只有在httpd.conf中添加以下行才能工作。

  Header always set Access-Control-Allow-Headers "*"
  Header always set Access-Control-Allow-Origin "https://www.stackoverflow.com"
  Header always set Access-Control-Allow-Credentials "true"

永远不会使用以下ZF2的愚蠢行:

$response->getHeaders()->addHeaderLine('Access-Control-Allow-Origin', 'https://www.stackoverflow.com');
$response->getHeaders()->addHeaderLine('Access-Control-Allow-Credentials', 'true');
$response->getHeaders()->addHeaderLine('Access-Control-Allow-Methods', 'POST PUT DELETE GET');
$response->setStatusCode(200);

以上是关于Zend Framework 2 - 如何允许杀死CORS策略:没有'Access-Control-Allow-Origin'的主要内容,如果未能解决你的问题,请参考以下文章

Zend Framework 1.11:如何自动加载使用命名空间的类

如何模拟 Zend\Form 提交而不在 Zend Framework 2/3 中显示表单?

如何安装zend framework 2.4.11骨架应用程序

如何模拟Zend Form提交而不在Zend Framework 2/3中显示表单?

如何使用Zend Framework 2使用Rest API

Zend Framework 2 - 如何使用外部库