jQuery插件相对于包含的js文件而不是主机创建API网址

时间:2015-06-03 10:20:53

标签: jquery api relative-path

嗨,目前我正在开发一个jQuery插件,我在其中进行API调用。而不是硬编码API的URL,我希望它是相对于插件的JS文件的URL

所以说我有以下设置

页面加载文件

http://mydomain1.com

在该页面中我加载

<script src="http://mydomain2.com/Scripts/myPlugin.min.js">

在该JS文件中,我将API网址加载为

api_endpoint: "/myApi/api/v1",

我希望这会解决

http://mydomain2.com/myApi/api/v1

但它解析为

http://mydomain1.com/myApi/api/v1

在Javascript中是否存在我可以设置相对于加载脚本而不是页面本身的JS文件的域名?

1 个答案:

答案 0 :(得分:5)

根据我对您的问题的理解,您需要将外部文件的网址作为基本网址。因此,您可以使用以下代码访问:

  1. 捕获文档的所有脚本文件
  2. 定义索引以获取脚本文件并从网址
  3. 中细化任何查询字符串
  4. 现在使用split和slice删除最后一个目录名(文件夹名称)并加入以创建完整的URL
  5. ...

    var scriptTags = document.getElementsByTagName('script');
    var filterPath = scriptTags[0].src.split('?')[0];      // Hopping your script is on first place of dom and removing any ?query
    var scriptFilePathUrl = filterPath.split('/').slice(0, -1).join('/');
    alert(scriptFilePathUrl);