摘要:最近公司要跨域請(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
摘要:同源策略做了很嚴(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...
摘要:同源策略做了很嚴(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...
摘要:同源策略做了很嚴(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...
摘要:源碼我們經(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...
摘要:另外回答的時(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)題面試官都...
閱讀 2146·2021-11-18 10:07
閱讀 3524·2021-09-04 16:48
閱讀 3225·2019-08-30 15:53
閱讀 1248·2019-08-30 12:55
閱讀 2464·2019-08-29 15:08
閱讀 3164·2019-08-29 15:04
閱讀 2889·2019-08-29 14:21
閱讀 2917·2019-08-29 11:21