gpt4 book ai didi

jquery - 在 jquery 插件中使用相对 API Url 的最佳方法

转载 作者:行者123 更新时间:2023-12-03 22:27:43 25 4
gpt4 key购买 nike

所以我正在使用 grunt 编写一个 jquery 插件,并且在我的插件中我还需要调用 webservices。

webservice url 域将始终与用户需要为我们的插件添加的 .js 文件位置相同的域。所以即相对

1) 包含插件的 JS 文件

http://mydomain1/js/myfile.js

2)在我的JS调用API URL

需要

api_domain: "http://mydomain1/api/v1"

我希望 api 域与调用它的 JS 文件的域相关,我尝试这样做

api_domain: "/mydomain1/api/v1"

但这会获取浏览器的域名。

所以我想知道实现这一目标的最佳方法是什么

1) 使用 .NET 处理程序从 context.request.url 插入正确的域名

2) 在 Grunt 构建中,为我将部署到的每个环境创建一个特定的 .js,该环境在 JS 中具有完整的 url

3) 其他选项?

最佳答案

实际上,您可以让脚本使用 jquery 找到它自己的源。只需确保为 js 文件指定一个足够唯一的名称即可。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/demux/4d4ce440d7c379305a9a/raw/findfilehosttest.js"></script>

实际脚本:

$(function(){
var url = $("script[src$='findfilehosttest.js']").attr('src')
var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i)
var domain = matches && matches[1]
alert(domain)
})

但总的来说,我认为最好保持简单。因此允许用户手动设置服务器的 URL,如下所示:

<script>
var MY_API_URL = 'https://instance1.myapiserver.foo'
</script>
<script src="/whateverpath/myapiscript.js"></script>

这还允许他们在自己的服务器上托管脚本,甚至可以出于任何原因代理它。

关于jquery - 在 jquery 插件中使用相对 API Url 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com