成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

自己寫了個(gè)jsonp

qqlcbb / 3361人閱讀

摘要:最近公司要跨域請(qǐng)求一個(gè)服務(wù),服務(wù)未啟動(dòng)的時(shí)候還要報(bào)錯(cuò)。自己做了一個(gè)以符合業(yè)務(wù)需求貼上源碼希望大家能多多提意見(jiàn)給賦函數(shù)的時(shí)候沒(méi)有采取一個(gè)請(qǐng)求一個(gè)函數(shù)是因?yàn)楹笈_(tái)服務(wù)參數(shù)沒(méi)有函數(shù)名稱

  最近公司要跨域請(qǐng)求一個(gè)服務(wù),服務(wù)未啟動(dòng)的時(shí)候還要報(bào)錯(cuò)。自己做了一個(gè)以符合業(yè)務(wù)需求
  
  
 貼上源碼:
        
        希望大家能多多提意見(jiàn)
        
        /**

v 1.0

author xingzheng

date 2018-12-19

*/
var JSONP = {

    now : function() {
        return (new Date()).getTime();
    },
    rand : function() {
        return Math.random().toString().substr(2);
    },
    waitPostArr:[],
    currentNodeName: "",
    
    removeElem : function(elem) {
        try{
            var parent = elem.parentNode;
            if (parent && parent.nodeType !== 11) {
                parent.removeChild(elem);
            }
        }catch(e){
            console.log(e);
        }
        
    },
    parseData : function(data) {
        var ret = "";
        if (typeof data === "string") {
            ret = data;
        } else if (typeof data === "object") {
            for ( var key in data) {
                ret += "&" + key + "=" + encodeURIComponent(data[key]);
            }
        }
        ret += "&_time=" + this.now();
        ret = ret.substr(1);
        return ret;
    },
    
    getJSONS : function(arr){
        this.waitPostArr = arr;
        this.getJSON(arr[0].url, arr[0].data, arr[0].func);
        this.waitPostArr.splice(0, 1);
    },
    getJSON : function(url, data, func) {
        var name;
        if(url.url){                    
            url = url + (url.url.indexOf("?") === -1 ? "?" : "&")
                + this.parseData(data);
        }else{
            url = url + (url.indexOf("?") === -1 ? "?" : "&")
                + this.parseData(data);
        }
        var match = /callback=(w+)/.exec(url);
        if (match && match[1]) {
            name = match[1];
        } else {
            name = "jsonp_" + this.now() + "_" + this.rand();
            url = url.replace("callback=?", "callback=" + name);
            url = url.replace("callback=%3F", "callback=" + name);
        }
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = url;
        script.id = "id_" + name;            
        script.onerror = function() {
            try{
                func({
                    result : "connectFailed"
                });
            }catch(e){
                JSONP.JSONP_next();
            }
            
        };
        var head = document.getElementsByTagName("head");
        if (head && head[0]) {
            head[0].appendChild(script);
        }
        this.currentNodeName = name;
    },
    JSONP_next : function(){
        if(this.waitPostArr && this.waitPostArr.length > 0){
            this.getJSON(this.waitPostArr[0].url, this.waitPostArr[0].data, this.waitPostArr[0].func);
            this.waitPostArr.splice(0, 1);
        }
    }
};
window["success_jsonpCallback"] = function(json) {
    var elem = document.getElementById("id_" + JSONP.currentNodeName);
    JSONP.removeElem(elem);
    try{
        func(json);
        JSONP.JSONP_next();
    }catch(e){
        JSONP.JSONP_next()
    }
};

給windows賦函數(shù)的時(shí)候沒(méi)有采取一個(gè)請(qǐng)求一個(gè)函數(shù)是因?yàn)楹笈_(tái)服務(wù)參數(shù)沒(méi)有函數(shù)名稱(WTF)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100171.html

相關(guān)文章

  • jsonp跨域獲取數(shù)據(jù)實(shí)現(xiàn)百度搜索

    摘要:同源策略做了很嚴(yán)格的限制,但是在實(shí)際的場(chǎng)景中,又確實(shí)有很多地方需要突破同源策略的限制,也就是我們常說(shuō)的跨域。使用跨域由于同源策略,一般來(lái)說(shuō)位于的網(wǎng)頁(yè)無(wú)法與不是的服務(wù)器溝通,而的元素是一個(gè)例外。 本菜雞最近在寫某個(gè)頁(yè)面請(qǐng)求數(shù)據(jù)時(shí),報(bào)了如下的錯(cuò)誤。 Failed to load https://...:No Access-Control-Allow-Origin header is pre...

    Tikitoo 評(píng)論0 收藏0
  • jsonp跨域獲取數(shù)據(jù)實(shí)現(xiàn)百度搜索

    摘要:同源策略做了很嚴(yán)格的限制,但是在實(shí)際的場(chǎng)景中,又確實(shí)有很多地方需要突破同源策略的限制,也就是我們常說(shuō)的跨域。使用跨域由于同源策略,一般來(lái)說(shuō)位于的網(wǎng)頁(yè)無(wú)法與不是的服務(wù)器溝通,而的元素是一個(gè)例外。 本菜雞最近在寫某個(gè)頁(yè)面請(qǐng)求數(shù)據(jù)時(shí),報(bào)了如下的錯(cuò)誤。 Failed to load https://...:No Access-Control-Allow-Origin header is pre...

    gggggggbong 評(píng)論0 收藏0
  • jsonp跨域獲取數(shù)據(jù)實(shí)現(xiàn)百度搜索

    摘要:同源策略做了很嚴(yán)格的限制,但是在實(shí)際的場(chǎng)景中,又確實(shí)有很多地方需要突破同源策略的限制,也就是我們常說(shuō)的跨域。使用跨域由于同源策略,一般來(lái)說(shuō)位于的網(wǎng)頁(yè)無(wú)法與不是的服務(wù)器溝通,而的元素是一個(gè)例外。 本菜雞最近在寫某個(gè)頁(yè)面請(qǐng)求數(shù)據(jù)時(shí),報(bào)了如下的錯(cuò)誤。 Failed to load https://...:No Access-Control-Allow-Origin header is pre...

    lemanli 評(píng)論0 收藏0
  • jsonpGet, 跨域如此簡(jiǎn)單

    摘要:源碼我們經(jīng)常在項(xiàng)目中遇到跨域問(wèn)題,比如有時(shí)候在做個(gè)人項(xiàng)目的時(shí)候,我們需要請(qǐng)求第三方的一些數(shù)據(jù),比如請(qǐng)求豆瓣公開(kāi)的數(shù)據(jù),或則音樂(lè)開(kāi)放的數(shù)據(jù)等等。但是毫無(wú)疑問(wèn),在我們的應(yīng)用中直接請(qǐng)求這些將出現(xiàn)跨域問(wèn)題。比如,向豆瓣公開(kāi)發(fā)送請(qǐng)求。 jsonGet源碼 我們經(jīng)常在項(xiàng)目中遇到跨域問(wèn)題,比如有時(shí)候在做個(gè)人項(xiàng)目的時(shí)候,我們需要請(qǐng)求第三方的一些數(shù)據(jù),比如請(qǐng)求豆瓣公開(kāi)api的數(shù)據(jù),或則qq音樂(lè)開(kāi)放api...

    BoYang 評(píng)論0 收藏0
  • 拒信收割機(jī)の前端面經(jīng)(CVTE,唯品會(huì),百度)

    摘要:另外回答的時(shí)候要淡定,一些問(wèn)題就算不懂也不能慌,要和面試官談笑風(fēng)生,然后盡量扯回到自己懂的東西上面大公司比如百度給我的感覺(jué)就是很重視基礎(chǔ)思維和潛力。 —— 雖然我的offer少,但是我的拒信多啊 這幾天終于閑下來(lái),做一點(diǎn)微小的工作,整理了一些之前幾家公司的前端面試題和個(gè)人經(jīng)驗(yàn),想做前端的師弟妹可以參考,也歡迎各同行大神來(lái)指教~ (以下問(wèn)題不分先后,時(shí)間久遠(yuǎn)難免有些遺漏;很多問(wèn)題面試官都...

    yzd 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<