在 This question之后,我设置了我的休息控制器行为
public function behaviors()
{
    $behaviors = parent::behaviors();

    $auth= $behaviors['authenticator'] = [
        'class' => HttpBearerAuth::className(),'only' => ['dashboard'],];
    $behaviors['contentNegotiator'] = [
        'class' => ContentNegotiator::className(),'formats' => [
            'application/json' => Response::FORMAT_JSON,],];
    $acces=$behaviors['access'] = [
        'class' => AccessControl::className(),'only' => ['login'],'rules' => [
            [
                'actions' => ['login'],'allow' => true,'roles' => ['?'],];

    unset($behaviors['authenticator']);
    unset($behaviors['access']);

而现在的cors过滤器

// add CORS filter
    $behaviors['corsFilter'] = [
        'class' => \yii\filters\Cors::className(),'cors' => [
        // restrict access to
        'Access-Control-Allow-Origin' => ['*'],'Access-Control-Request-Method' => ['GET','POST','PUT','PATCH','DELETE','HEAD','OPTIONS'],// Allow only POST and PUT methods
        'Access-Control-Request-Headers' => ['*'],// Allow only headers 'X-Wsse'
        'Access-Control-Allow-Credentials' => true,// Allow OPTIONS caching
        'Access-Control-Max-Age' => 86400,// Allow the X-Pagination-Current-Page header to be exposed to the browser.
        'Access-Control-Expose-Headers' => [],]
    ];

    // re-add authentication filter
    $behaviors['authenticator'] = $auth;
       $behaviors['access'] = $access;
    // avoid authentication on CORS-pre-flight requests (HTTP OPTIONS method)
    $behaviors['authenticator']['except'] = ['options'];
    return $behaviors;
}

我的角度2前端as

const body = JSON.stringify(user);
let headers = new Headers();
headers.append('Content-Type','application/x-www-form-urlencoded');
headers.append('Content-Type','application/json');
headers.append('Access-Control-Allow-Credentials',"*");
return this._http.post(this.loginUrl,body,{ headers:headers })
  .map((response: Response) => {
     //process response
  })
.catch(this.handleError);

但我仍然收到错误

Response to preflight request doesn't pass access control check: No
 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 
 'http://localhost:3000' is therefore not allowed access.

什么可能是错误的,因为ive设置cii过滤器在yii2行为未设置认证器,并在以后添加
我能错过什么?

我也检查了This link和this one
但没有一个解决问题

尝试这个 :
public static function allowedDomains()
{
    return [
        // '*',// star allows all domains
        'http://localhost:3000','http://test2.example.com',];
}  



public function behaviors()
    {
        return array_merge(parent::behaviors(),[

            // For cross-domain AJAX request
            'corsFilter'  => [
                'class' => \yii\filters\Cors::className(),'cors'  => [
                    // restrict access to domains:
                    'Origin'                           => static::allowedDomains(),'Access-Control-Request-Method'    => ['POST'],'Access-Control-Allow-Credentials' => true,'Access-Control-Max-Age'           => 3600,// Cache (seconds)

                ],]);
    }

在您的控制器上添加此功能.

和一个角度2使用OPTION方法在第一次为了允许OPTION方法也

php – Yii2 cors过滤器错误,不存在“访问控制允许原点”头的更多相关文章

  1. 尝试更改Bool属性时,ios – EXC_BAD_ACCESS错误

    我正在尝试更改Bool属性并且收到一个EXC_BAD_ACCESS错误.我正在使用XCode6和Swift.note属性保存不错,但已完成的属性会抛出EXC_BAD_ACCESS错误改变属性程序解决方法有同样的问题,解决方案确实是在@NSManaged属性中使用NSNumber.此外,您可以定义一个计算的Bool属性,以便您可以使用业务逻辑中的标量布尔值,而不能使用NSNumber.

  2. ios – 为什么在Swift中使用私有属性/方法并不常见

    为什么在Swift/Cocoa中你很少看到私有访问器用于你不希望程序的其他部分访问的属性?有人可以如此善良并解释一般的概念访问器吗?

  3. Swift 新特性 - 访问控制Access Control

    模块和源文件Swift中的访问控制模型基于模块和源文件这两个概念。在Swift中,Framewordk或Appbundle被作为模块处理。访问级别Swift提供了三种不同的访问级别。通常情况下,某个接口或Framework作为内部结构使用时,你可以将其设置为internal级别。访问控制语法通过修饰符public、internal、private来声明实体的访问级别:除非有特殊的说明,否则实体都使用默认的访问级别internal,可以查阅默认访问级别这一节。

  4. [翻译]Swift编程语言——访问控制

    Protocolscanberestrictedtoacertaincontext,ascanglobalconstants,variables,andfunctions.除了提供访问控制的多种级别,Swfit通过提供默认访问级别来限制需要指定明确访问级别的需要。模块和源文件Swfit的访问控制模型是基于模块和源文件概念的。访问级别Swift提供了三种访问级别。Private限制只能在实体对象的定义文件使用它们。Public是最高的访问级别,Private是最低的访问级别。下文会涵盖针对Swfit语言的不

  5. 2015年2月到2015年6月8日2.0发布Swift主要更新

    存放的元素需要遵循hashable协议。调用一个抛出错误的函数/方法/闭包,前面要用try。捕获和处理错误do-catch格式:do{尽量确保能捕获所有错误。catch不指定匹配模式将匹配所有错误。调用,不必处理错误。如有错误发生,会导致运行时错误。多个defer语句按照定义顺序倒叙执行。

  6. Swift学习之 访问控制

    模块和源文件Swift中的访问控制模型基于模块和源文件这两个概念。在Swift中,Framework或Appbundle被作为模块处理。访问级别Swift提供了三种不同的访问级别。Public为最高级访问级别,Private为最低级访问级别。访问控制语法通过修饰符public、internal、private来声明实体的访问级别:publicclassSomePublicclass{}internalclassSomeInternalClass{}privateclassSomePrivateClass{

  7. Swift学习笔记系列——24访问控制

    Swift学习笔记系列——访问控制访问控制的对象单个的类、结构体和枚举属于1的属性、方法、构造方法和下标协议的适用范围模块和源文件访问控制的基础模块一系列代码,Xcode中的一个构造目标源文件单独的源代码文件三种访问级别public本模块的任意源文件内可以访问导入所在模块的其他模块的源文件可以访问Internal默认的访问级别同一模块的任意源代码中都可以访问Private同一源文件可以访问访问级别的指导原则衍生物的访问级别不能高于母体。

  8. Swift访问控制(Access Control)

    当你在Swift编写一个类时,默认其中任何属性,方法都能被外部访问的。在swfit用于访问控制的有三个关键字。如你使用XCTest测试某个类时,就需要在类前添加public。internal:swift默认访问控制,允许在项目内访问。private:私人访问,只能在当前类中访问。

  9. Swift 的访问控制private,internal,public

    在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访问权限的控制,不是基于类的,而是基于文件的。如果是App代码,也是在整个App代码,也是在整个App内部可以访问。

  10. Swift新特性 -- 访问控制Access Control

    模块和源文件Swift中的访问控制模型基于模块和源文件这两个概念。在Swift中,Framewordk或Appbundle被作为模块处理。访问级别Swift提供了三种不同的访问级别。通常情况下,某个接口或Framework作为内部结构使用时,你可以将其设置为internal级别。访问控制语法通过修饰符public、internal、private来声明实体的访问级别:除非有特殊的说明,否则实体都使用默认的访问级别internal,可以查阅默认访问级别这一节。

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部