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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • getproperty方法_setter什么意思

    getproperty方法_setter什么意思PropertyDescriptor获取属性的getter/setter方法

    2022年10月1日
    3
  • plsql 安装使用教程「建议收藏」

    plsql 安装使用教程「建议收藏」plsql客户端连接工具是oralce数据库最常用,最专业的使用工具,但是使用起来不是那么方便,记录一下使用的过程吧首先下载instantclient-basic-win32-11.1.0.7.0然后创建tnsnames.ora文件内容#tnsnames.oraNetworkConfigurationFile:D:\Oracle-Install\network\admin\tnsnames.ora#GeneratedbyOracleconfigurationtools.

    2022年5月2日
    63
  • 新浪股票接口获取历史数据

    新浪股票接口获取历史数据这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用,因为新浪没有公开关于其接口的官方文档,所以通过各种百度差了很多关于新浪股票接口的使用,不过大家基本都是转载或者直接复制,对于实时数据的获取讲的很详细,但是缺少获取历史数据的方法。关于实时数据的获取大家可以看这篇博客:实时股票数据接口 经过不懈的努力终于再这篇博文中找到了关于新浪股票历史数据的获取方式腾讯股票接口、和讯网股票接口、新浪股票…

    2022年6月24日
    115
  • f stream_fstream

    f stream_fstreamofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>)  从流中输入数据

    2025年11月24日
    5
  • 免裁券也不灵?老板:想不到我裁你两次吧……

    免裁券也不灵?老板:想不到我裁你两次吧……

    2022年2月14日
    42
  • ActionContext_javacontext模式

    ActionContext_javacontext模式ActionContextActionContext是Action的上下文,Struts2自动在其中保存了一些在Action执行过程中所需的对象,比如session,parameters,locale等。Struts2会根据每个执行HTTP请求的线程来创建对应的ActionContext,即一个线程有一个唯一的ActionContext。因此,使用者可以使用静态方法ActionContext….

    2025年10月17日
    3

发表回复

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

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