我明白这个问题有点奇怪,但我在这里。我正在编写一个将切换环境的应用程序(dev,test,prod等)。我需要在我切换环境时更改REST调用的基本URL。好吧,我们当前的解决方案(我更倾向于更好的解决方案)是一个本地REST调用,询问服务器我在哪个环境以及我应该为我的基础使用什么URL。外部REST调用完全与前端分离。
通过本地REST调用,我可以执行ajax调用以在我的javascript中获取数据,或者我可以包含REST调用,如下所示:
<script src="/rest/configs"></script>
上述解决方案的问题在于它返回一个未分配给变量的对象,从而抛出错误。所以我的问题是,你可以通过脚本标记直接加载一个REST调用变量,如果是,那么如何?
答案 0 :(得分:2)
如果使用脚本标记执行此操作,请求的响应(根本不是AJAX)将作为javascript进行解析和执行。
您可以做的是返回有效的Javascript,而不是JSON对象。像
这样的东西window.config = {"env":"test"};
而不是
{"env":"test"}
其他选项不是使用脚本标记执行此操作,而只是使用ajax调用编写内联javascript。如果你使用jQuery,它看起来像:
<script>$.get("/rest/configs", function(config) { window.config = config; });</script>
这将执行Ajax调用并将其分配给全局变量config。当然,你应该做一些调整,然后执行其余的javascript。
无论如何,作为标准,此值通常在脚本中进行硬编码。我建议创建一个针对测试/开发/生产环境进行修改的脚本。
答案 1 :(得分:0)
你的休息电话只能返回一个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>