ZF2中的CORS POST请求变成OPTIONS请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZF2中的CORS POST请求变成OPTIONS请求相关的知识,希望对你有一定的参考价值。
Zend Framework 2中是否总有允许我的API使用CORS?
我已经允许所有来源header("Access-Control-Allow-Origin: *");
每次发送POST
请求带有标头服务器都会响应405。
在我的访问日志上,我看到请求实际上是OPTIONS
答案
因此,从您的php脚本开始应进行以下检查:
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
一旦执行此操作,就会启用CORS。
另一答案
是-扩展控制器类中的endMvcControllerAbstractRestfulController::options
方法。默认情况下,它返回405,这可能是您看到该响应的原因。
可以通过endHttpHeaders::addHeaders
设置标题
注:由于Zend Framework已成为Laminas,因此“ Zend”当前为“ Laminas”。
以上是关于ZF2中的CORS POST请求变成OPTIONS请求的主要内容,如果未能解决你的问题,请参考以下文章
Haskell Yesod - 执行 POST 请求时浏览器 OPTIONS 请求的 CORS 问题