马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1、php服务器天生图片验证码的代码片断如下:
注意红框部分的代码,天生的是ArrayBuffer范例的二进制图片
2、表现验证码
表现验证码,不要直接image组件加上src表现,那样拿不到cookie,没有办法做图形验证码的验证,必要通过接口的方法获取,上接口代码如下:- function get_verify_code(url, success, fail, complete) {
- if (request_status == true) {
- return;
- }
- request_status = true;
- let header = {
- 'Content-Type': 'application/x-www-form-urlencoded'
- };
- uni.request({
- url: url,
- timeout: 60000,
- header: header,
- responseType: 'arraybuffer',//这个地方不要写错
- method: 'GET',
- success: res => {
- request_status = false;
- if (res.statusCode == 200) {
- let cookieKey = '';
- let data = res.data;//拿的图片
- // #ifdef MP-WEIXIN
- if (res && res.header && res.header['Set-Cookie']) {
- cookieKey = res.header['Set-Cookie'];//拿cookie
- }
- // #endif
- success({"data":data,"cookieKey":cookieKey});
- } else if (res.statusCode == 404) {
- success({"success": false,"field": "fail_net","message": "请求的资源不存在"});
- } else if (res.statusCode == 500) {
- success({"success": false,"field": "fail_net","message": "内部服务器错误"});
- } else {
- success({"success": false,"field": "fail_net","message": "请求异常"});
- }
- },
- fail: (e) => {
- if (request_status == true) {
- request_status = false;
- }
- fail(e);
- },
- complete: (e) => {
- if (request_status == true) {
- request_status = false;
- }
- complete(e);
- }
- });
- }
复制代码 表现图片的利用代码如下:- get_verify_code(v) {
- let url = `${base_url}get_verify_code/${v}`;
- //console.log('url:'+url);
- this.$net.get_verify_code(
- url,
- res => {
- const base64 = uni.arrayBufferToBase64(res.data);
- this.imageData = `data:image/png;base64,${base64}`;
- // #ifdef MP-WEIXIN
- if (res.cookieKey) {
- uni.setStorageSync('cookieKey', res.cookieKey);
- }
- // #endif
- },
- () => {
- },
- () => {
- }
- );
- },
复制代码 如许图片就可以正常表现了,提交的方法里要带上cookie,如许就可以验证验证码了。
|