Vue异步发送请求转为同步发送请求

在Vue开发中遇到异步请求无法及时获取验证值的问题,作者通过自定义同步发送请求的方法解决了这个问题。具体做法是关闭原有异步请求,引入一个同步的ajax函数,通过设置`async:false`确保请求同步执行,从而实现在输入身份证号时即时验证角色是否存在。
摘要由CSDN通过智能技术生成

1、问题场景

在开发项目时遇到了vue异步请求的问题,场景如下:
在这里插入图片描述这里需要身份证号在输入时同步验证身份证号对应的角色是否在另一张表中存在,使用到了vue的dataRule自定义validator验证,在这块使用自带的异步发送ajax死活拿不到验证的值。
于是我查阅了相关资料,vue的异步发送请求在某些场景确实是不好用的,于是自己编写了同步发送请求的方法。

2、解决方法

(1)关闭异步请求

import Vue from 'vue'


Vue.prototype.ajax = function(url, type, data, fun) {
    let token = Vue.cookie.get('token')
    $.ajax({
        url: url,
        type: type,
        dataType: 'json',
        contentType: "application/json",
        async: false,
        headers: {
            "token": token
        },
        data: JSON.stringify(data),
        success: function(resp) {
            fun(resp)
        },
        error: function(e) {
            console.log(e)
        }
    })
}

(2)调用
在需要调用关闭异步请求的文件中进行调用

import Vue from 'vue';

this.ajax(
				你的url,
				'post',
				{'参数名': '参数值'},
				function(resp){
					if(resp.exist>0){
						return callback()
					}else{
						callback(new Error("该学生不存在!"))
					}
				}
			)

这样就成功解决异步请求无法及时获取参数的问题了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值