需求介绍
项目中需要外提供一个获取登录状态的jsonp接口,并且需要封装成一个js方法给使用者调用。
本文介绍如何根据当前环境请求对应的jsonp接口地址(开发,测试,生产,等其他环境)。
实现
获取当前js文件被引用的环境代码如下:
var fileOrigin=function(){
var scripts=document.getElementsByTagName("script"),
fileName='myFile.js',
filePath='';
for(var i=scripts.length;i;i--){
if(scripts[i-1].src.indexOf(fileName)>=0){
filePath=scripts[i-1].src;
}
}
if(filePath.match(/https?\:\/\/(.*?)\//)){
return filePath.match(/https?\:\/\/(.*?)\//)[0];
}
//如果匹配不到,使用默认路径
return 'https://test.com/';
}()
以下为几组fileOrigin的值示例
<script src='https://www.aa.com/d/myFile.js'></script>
fileOrigin='https://www.aa.com/'
<script src='http://www.bb.com/myFile.js'></script>
fileOrigin='http://www.bb.com/'