写美团领券工具时,遇到的问题

用ajax请求领券api

第一时间想到的就是ajax,直接前端请求领券api,结果不可行[aru_52]。原因是不同源,美团限制了非美团域名请求api,后来一想,大厂的程序员又不是傻子[aru_162],一般都会限制这个的,于是放弃ajax,使用php curl写的。

ajax的同步与异步

先看下面的代码

function ofive(){
        let fanhui;
        $.ajax({
            url:"./qiang15.php",    //请求的url地址
            dataType:"text",   //返回格式为json
            async:true,//请求是否异步
            data:{"cookie":cks},    //参数值
            type:"POST",   //请求方式
            success:function(req){
                $('#15').text("抢券提示为:"+req);
                fanhui15 = req;
            }
        });
        return fanhui;
       }

当时调用这个函数,返回值一直undefined[aru_60],后来发现这里的ajax设置的是异步(async:true),异步的意思就是:无论这个ajax是否执行成功,都继续执行下面的代码。也就是调用这个函数后,没有等ajax成功返回,就执行(return fanhui),这个时候(fanhui)还没有被赋值,所以一直是undefined。解决办法是改成同步(async:false),这样一定要等ajax成功返回,才会执行(return fanhui)。

发表评论 取消回复
表情 图片 链接 代码

  1. 萧瑟
    萧瑟 Lv 2 北京市海淀区 联通

    用后台伪造请求就可以了。[aru_27]

    • 隔壁小蒋
      隔壁小蒋 站长 湖南省长沙市 移动

      @萧瑟后台请求就是服务器ip了,都是同一个不太好。用ajax的话,就是用户的ip

分享