捣捣爸
public function behaviors() { return ArrayHelper::merge([ 'corsFilter' => [ 'class' => Cors::className(), ], ], parent::behaviors(), [ 'authenticator' => [ 'class' => CompositeAuth::className(), 'authMethods' => [ HttpBasicAuth::className(), HttpBearerAuth::className(), QueryParamAuth::className(), ], ], 'rateLimiter' => [ 'enableRateLimitHeaders' => false, ], ]); }
谢谢回答,但仍然不行,根据https://stackoverflow.com/questions/41647444/yii2-cors-filters-error-that-no-access-control-allow-origin-header-is-present 第四和第五提到的内容,我这里cors配置根本就没起作用,我猜测应该不是在behaviors里配置的问题
修改
Origin
,先改成*
,这是我自己的代码:
$behaviors['corsFilter'] = [ 'class' => \yii\filters\Cors::class, 'cors' => [ 'Origin' => ['*'], 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'], 'Access-Control-Request-Headers' => ['*'], //'Access-Control-Request-Headers' => ['authorization'], //'Access-Control-Allow-Credentials' => true, 'Access-Control-Max-Age' => 60, 'Access-Control-Expose-Headers' => ['*'], ], ];
谢谢回答,但仍然是不行,之前我试过这种方法,他会提示当
credentials
为include
的时候origin
不能为通配符。现在我不知道改了什么地方,仍然提示的是No 'Access-Control-Allow-Origin' header is present on the requested resource.
这个当然是 可以的
简单的考虑,用 javascript 对密码做一些预处理就可以了,像什么 md5 sha1 之类的 都有开源的js库,当然也可以自己实现 一种加密算法,不过,因为 js代码都是需要下载到本地浏览器运行的,所以 不论你用 js 做什么手脚,即便你可以 对代码 做一些 混淆处理,只要我愿意 并且 有足够的时间 和 耐心,都是可以 读懂你的 js代码,知道你到底对 密码 做了什么处理的。 所以,这种方式 可以说是一种 中看不中用的 花拳绣腿 而已。
安全的方式 当然也有,对 IE 来说,可以使用 ActiveX 控件,对某个版本之前的 chrome 来说,可以使用 npapi插件,这两种方式 比 js 的方案都 安全很多,因为 看不到 源代码了。不过 遗憾的是:某个版本之后 chrome 取消了 对 npapi插件的支持,所以 这么多年以来 很多的 网上银行 都是只支持 IE 登录的,原因就是 chrome 下没有一种安全的 客户端密码加密方案。
谢谢回答,我的意思是Yii框架是否集成了相关功能可以直接调用,我找到了beforeValidate应该可以实现我的想法,https://www.yiichina.com/doc/guide/2.0/input-form-javascript#beforevalidate,我还在研究学习。
其实都不用读懂代码,也不需要知晓我在前端的加密方式,就算是获取了加密后的表单数据,也可以用POSTMAN这样的软件来模拟登陆之类的操作。但在前端对明文密码进行处理至少一定程度上可以防止隐私泄露请问楼主,您说的参数要写 Users[pic] 0。0是写在哪里?怎么写
- 捣捣爸 回答了问题 数据插入失败,却又获取不到 errors?
嗯我找到原因了
我的一个字段
answerOrder
设置的是bit
类型,用 Gii 生成的 rules 里面有一条:[['answerOrder'], 'boolean'],
而我在进行块赋值的时候给answerOrder
不管赋值为1,0,true,false
都会造成插入失败,把数据表中 bit 类型改为 int,或者把 rules 里面上述语句删掉就可以了但是仍然有问题不明白:
- bit类型应该怎么赋值?
- 为什么
getErrors()
不提示错误信息?
- 捣捣爸 回答了问题 数据插入失败,却又获取不到 errors?
为什么我总是不能以代码格式提交代码
- 捣捣爸 提出了问题数据插入失败,却又获取不到 errors?