跨域请求封装优化

  • 跨域请求方法封装js
function myFun(obj){
    var defaults = {
        type:"get",
        url:"#",
        data:{},
        success:function(data){},
        jsonp:callback,
        jsonpCallback:"hhhh"
    };
    for(var key in obj){
        defaults[key] = obj[key];
    }
    var params = "";
    for(var attr in defaults.data){
        params += attr + "=" + defaults.data[attr] + "&";
    }
    if(params){
        params = params.substring(0,params.length-1);
        defaults.url += "?" + params;
    }
    defaults.url += "&" + defaults.jsonp + defaults.jsonpCallback;
    var script = document.createElement("script");
    script.src = defaults.url;

    window[defaults.jsonpCallback] = function(data){
        defaults.success(data);
    }
    var head = document.querySelector("head");
    head.appendChild(script);
}
  • 跨域请求封装测试js
myFun({
    url:"https://suggest.taobao.com/sug",
    data:{q:keywordValue},
    success:function(data){
        console.log(data);
    },
    jsonp:"callback",
    jsonpCallback:"hhhh"
})
  • 此次优化在于请求中返回数据的方法名及返回调用名的自定义,若在项目设计中需求增加请求中的参数,可根据类似的方法在定义函数的对象defaults中增加key:value的参数,同时在函数调用中增加具体的参数。
  • jquery跨域请求
//使用jquery跨域获取请求
//dataType:"jsonp"
$.ajax({
    url:"https://suggest.taobao.com/sug",
    data:{q:keywordValue},
    success:function(data){
        console.log(data);
    },
    dataType:"jsonp",
    jsonp:"callback",
    jsonpCallback:"hhhh"
})

最后推荐一个公众号,一枚IT技术人成长路上关于生活和职场的思考,欢迎书友们前来交流和分享心得

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值