首页 > 代码库 > JavaScript手动实现JSONP代码
JavaScript手动实现JSONP代码
浏览器的同源策略不允许我们直接通过ajax call别的域名上的url,但是script,img标签却米有这个限制,jsonp便是利用了这一点,通过在页面上生成一个src为我们所要调用url的script标签,能拿到服务器返回的结果,当然这个只支持get请求,同样,服务器端也要能够接受我们所传递的参数。
下面是一个例子:
<script> function removeScript(scriptId) { const script = document.getElementById(scriptId); document.getElementsByTagName(‘head‘)[0].removeChild(script); } function clearFunction(functionName) { try { delete window[functionName]; //IE8下直接删除会报错 } catch (e) { window[functionName] = undefined; } } function call(url) { var callbackFunction = Math.ceil(Math.random() * 100000 ); url += (url.indexOf(‘?‘) === -1) ? ‘?‘ : ‘&‘; var jsonpScript = document.createElement(‘script‘); jsonpScript.setAttribute(‘src‘, `${url}callabck=${callbackFunction}`); jsonpScript.id = scriptId; document.getElementsByTagName(‘head‘)[0].appendChild(jsonpScript); window[callbackFunction] = function(data) { //在这里处理数据,然后最后记得一定要删除script并且将函数从window对象上删除掉。 //Handling data... removeScript(scriptId); clearFunction(callbackFunction); } } </script>
JavaScript手动实现JSONP代码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。