如何通过脚本标记加载REST调用
How to load a REST call through a script tag
我知道这个问题有点奇怪,但我来了。我正在编写一个将切换环境(开发、测试、生产等)的应用程序。我需要REST调用的基本URL在切换环境时进行更改。好吧,我们目前的解决方案(我一直在寻找更好的解决方案)是一个本地REST调用,询问服务器我所处的环境以及我应该为我的基础使用什么URL。外部REST调用与前端完全分离。
使用本地REST调用,我可以执行ajax调用以在javascript中的某个位置获取数据,或者我可以包括如下REST调用:
<script src="/rest/configs"></script>
上述解决方案的问题是,它返回一个未分配给变量的对象,从而引发错误。所以我的问题是,你能通过脚本标记直接将REST调用加载到变量中吗?如果可以,如何加载?
如果使用脚本标记,则请求的响应(根本不是AJAX)将被解析并作为javascript执行。
您可以做的是返回有效的Javascript,而不是JSON对象。类似的东西
window.config = {"env":"test"};
而不是
{"env":"test"}
另一种选择是不使用script标记,只使用ajax调用编写内联javascript。如果你使用jQuery,它看起来像:
<script>$.get("/rest/configs", function(config) { window.config = config; });</script>
这将执行Ajax调用,并将其分配给全局变量config。当然,您应该进行一些调整,并在执行后执行其余的javascript。
无论如何,作为一种标准,这个值通常在脚本中进行硬编码。我建议创建一个针对测试/dev/生产环境进行修改的脚本。
您的rest调用不能只返回一个Javascript对象吗
var env = "experimental";
您的网页应该能够将其解释为Javascript,并且env
变量应该可以在页面的其余部分使用:
<html>
<head>
<script type="text/javascript" src="/rest/configs"></script>
<script type="text/javascript">
console.log("env: " + env); // prints env: experimental
</script>
</head>
<body></body>
</html>
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何通过脚本标记加载REST调用
- 将JSON REST请求加载到Kendo ui列表视图中的问题
- 无法从REST加载主干视图/模板
- AngularJS-使用REST API调用加载图像
- AngularJS:如何加载第一个N个JSON响应,然后在页面渲染后请求rest
- 在没有列表权限的情况下,使用Javascript REST Api在页面上加载SharePoint List数据
- 如何从返回JSON的REST web服务加载ng表中的数据
- 如何在REST调用成功或事件广播后加载角度日期过滤器