跨域读取think-captcha图片的问题

浏览:46 发布日期:2020/02/06 分类:ThinkPHP6专区 关键字: tp6
我的应用场景是:前端通过AJAX调用后端接口,调用时请求头必须带上特殊字段属性,后端根据这个属性来确定是否放行或拒绝请求。目前登录验证码这块碰到问题,如果直接写死在img属性中,就是正常访问,按设计会被拒绝,所以我的做法是先ajax调用验证码接口,得到base64编码,然后再赋值给img:<img :src="captcha" @click="handleResetCaptcha" />      this.apiGet('base/captcha').then(res => {
        this.captcha = 'data:image/png;base64,' + res.data
      })
后端在调用Captcha::create()创建验证码时,默认返回的是Response,所以我做了如下处理:        $base64 = base64_encode(Captcha::create()->getContent());
        return $this->success(['data' => $base64]);
这样前端能得到验证码图片了,但问题又来了,全局开启session的情况下,验证码一直验证不通过,于是我打印了他生成的和我前端提交的进行比较,发现我提交的就是图片显示的字符串,而生成的却与图片中显示的不一样。不知道为什么?

于是发帖向各位老大或官方求助!

补充说明,前端是通过后端返回数据的code进行判断是否请求成功,所以如果没有code属性,会被默认为调用失败!
最佳答案
评论( 相关
后面还有条评论,点击查看>>
重庆体彩网 广东11选5 传奇私服_中国 传奇私服考查询 最新的传奇私服发布网 500万彩票网 中国福彩网 辽宁福彩网 山东彩票网 河北快3