ajax中回调的几个坑

ajax中回调的几个坑

大家好,又见面了,我是你们的朋友全栈君。

在前端开发中,经常要用ajax去拿后台接口返回的数据,总结几个ajax的回调的常见问题,供大家参考爬坑。

  1. 未定义contentType,可能会造成的传入后台的数据乱码,可以加上如下代码在ajax请求中 contentType:'application/json;charset=UTF-8',
  2. 约定好传到后台以及后台返回的数据类型,一般定义json类型。
    JSON.stringify():将一个JavaScript值(对象或者数组)转换为一个 JSON字符串
    JSON.parse():将一个 JSON 字符串转换为对象

这两个是常用的json转换的api

  1. 在success或者error回调中,return 是拿不到值的,即使改变了async:false也拿不到,看下面的例子:
function checkUserTask(taskid){
        $.ajax({
            method:'get',
            url:URL.checkUserTask,
            async:false,
            data:{'id':taskid},
            success:(response)=>{
                console.dir(response)
                if(response.code==200 ){
                    return true;
                }else{
                   return false;
                }
            }
        });
    }

这种写法即使是成功或者失败,在调用checkUserTask方法时都是返回的undefined,拿不到true或者false标识,所以一般写法修改如下:

function checkUserTask(taskid){
        var flag = false;
      
        $.ajax({
            method:'get',
            url:URL.checkUserTask,
            async:false,
            data:{'id':taskid},
            success:(response)=>{
                if(response.code==200 ){
                    flag = true;
                }else{
                    flag = false;
                }
            }
        });
        return flag;
    }

在回调的后面return 就可以拿到返回值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107409.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 之 集合中的 modCount的作用「建议收藏」

    Java 之 集合中的 modCount的作用「建议收藏」modCount:记录当前集合被修改的次数在所有的集合实现类中(Collection与Map中),都会有一个 modCount 的变量出现,它的作用就是记录当前集合被修改的次数。下面以ArrayList 类进行说明:添加方法:删除方法:可以看出,两个操作都会影响元素的个数。 当我们使用迭代器或 foreach 遍历时,如果你在 foreach 遍历时,自动调用迭代器的迭代方法,此时在遍历过程中调用了集合的add,remove方法时,modCount就会改变,而迭代器记录的modCount

    2022年8月9日
    7
  • Windows命令行route命令使用图解

    Windows命令行route命令使用图解一操作实例查看当前本机的路由表;有三部分,接口列表,IPv4路由表,IPv6路由表;查看0.打头的路由表信息;添加一条添加默认网关地址为192.168.12.1的默认路由;删除前面添加的路由;添加跃点数为7的路由;删除之;添加接口索引为某个值的路由,不知为何失败;下

    2022年7月18日
    28
  • cBridge 2.0主网启动:迈向无缝互操作性未来的关键一步

    cBridge 2.0主网启动:迈向无缝互操作性未来的关键一步在不到两个月前,我们宣布了基于升级版SGN的cBridge2.0计划,今天,我们高兴地宣布cBridge2.0主网正式上线!

    2022年5月4日
    50
  • 秦九韶计算多项式的方法_秦九韶

    秦九韶计算多项式的方法_秦九韶本人水平有限,题解不到为处,请多多谅解本蒟蒻谢谢大家观看秦九韶公式:可不断的提取x作公因式,写成如上形式不断将x=4由里往外扩展,大大方便了计算

    2022年8月3日
    5
  • noip2018提高组初赛解析_noip小学组

    noip2018提高组初赛解析_noip小学组【问题简述】给定一个数n表示教室数接下来n个数r[i],表示每天可以借用的教室数量。有m份订单,每份订单有三个数d[i],s[i],t[i]。表示从S[i]天到t[i]天,借用d[i]个教室。现在询问能否满足所有订单。如果能,则输出0不能,则输出-1,换行输出最早不能满足的订单。【输入样例】432543213324424…

    2022年8月22日
    12
  • 3月份感觉比较漫长,可能因为经历得比较多吧

    3月份感觉比较漫长,可能因为经历得比较多吧

    2020年11月12日
    236

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号