我知道这有点奇怪,但是我去了。 我正在编写一个将切换环境(开发,测试,生产等)的应用程序。 我需要在切换环境时更改REST调用的基本URL。 好吧,我们当前的解决方案(我一直在寻求更好的解决方案)是一个本地REST呼叫,询问服务器我所处的环境以及我的基础应该使用哪个URL。 外部REST调用与前端完全分开。

使用本地REST调用,我可以进行ajax调用以将数据获取到我的javascript中,或者可以包括REST调用,如下所示:

<script src="/rest/configs"></script>

上述解决方案的问题在于,它返回未分配给变量的对象,从而引发错误。 所以我的总体问题是,您能否通过脚本标签将REST调用直接加载到变量中,如果可以,如何进行?

#1楼 票数: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。

无论如何,作为标准,此值通常在脚本中硬编码。 我建议创建一个针对测试/开发/生产环境修改的脚本。

#2楼 票数:0

您的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>

  ask by Austin Lovell translate from so

未解决问题?本站智能推荐:

4回复

从Javascript调用REST端点

我试图像这样从Javascript调用Spotify API: 但是,尽管请求返回200,但xhttp.responseText为空。 我可以在浏览器中看到该请求返回了预期的结果,但是以某种方式我无法从Javascript中提取它: 我尝试使用Java调用REST端点(因为我对它更
2回复

如何使REST调用安全

我正在使用REST方法使用JSON / JS / jquery调用web服务,并且想知道是否有办法调用webservice而不在源代码中公开我的API密钥。 任何人都知道一种隐藏API密钥的方法,仍然可以拨打电话吗? 我担心,如果有人通过我的来源,他们将能够使用我的API密钥。
2回复

从jQuery调用REST服务

我已经在"/post/search/{id}"处创建了一个REST服务,当我从我的jquery代码中调用此URL时,有时却未调用它。 确切的问题是什么? 是关于jquery还是我的代码。 我的jQuery代码如下: 我的按钮代码是:
1回复

如何调用REST服务

我创建了一个 REST 服务,它根据发出的请求从数据库中检索数据并将其返回 JSON 格式。 现在,我需要创建一个带有按钮的 HTML 页面,当单击该按钮时,应从服务中获取适当的数据。 我了解到这可以通过 ajax 来完成。 但我不知道该怎么做。 该服务使用 Spring Framework 和 A
1回复

如何测试对REST服务的调用

我设置了一个为客户端提供多个端点的服务器,并且我有一个使用node-rest-client包将数据post到后端node-rest-client 。 我想为客户端编写一些单元测试,确保数据正确发送到端点。 我一直在考虑为测试设置一个虚拟服务器,但这感觉不对。 我怎样才能完成这样的测试? 请让我知道是
2回复

使用Selenium捕获REST调用

我使用Selenium作为测试运行器和Selenium API的webdriver.io javascript库运行集成测试。 我的测试如下:我加载一个html页面并单击一个按钮。 我想检查是否调用了Get REST调用。 我找到了一个名为webdriverajax的webdriver.
1回复

来自JavaScript的REST资源调用

我有一个Web应用程序,它具有如下JS代码(使用Backbone.JS作为模型); 现在,有一个对Java(REST资源)的调用,就像它的确切调用方式一样,我无法理解。 Java代码(REST资源)如下所示; 我的问题是,对api / list / student / demograp
1回复

来自Javascript的简单REST调用

我试图从这里打电话给我的服务http://diningphilospher.azurewebsites.net/api/dining 使用下面的javascript, 但我得到有关交叉起源的错误。 我看到人们建议使用JSONP,但我想我的服务器不支持JSONP。 我研究过CORS,无