jQuery 插件使 API url 相对于包含的 js 文件而不是主机

jQuery plugin making a API url relative to included js file rather than host

您好,我目前正在开发一个 jQuery 插件,我可以在其中进行 API 调用。与其硬编码 API 的 URL,我希望它与插件

的 JS 文件的 URL 相关

假设我有以下设置

页面加载文件

http://mydomain1.com

在我加载的那个页面中

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

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

api_endpoint: "/myApi/api/v1",

我希望这会解决

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

但它解析为

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

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

根据我对您的问题的理解,您需要外部文件的 url 作为基础 URL。所以你可以使用下面的代码来访问它:

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

...

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);