【发布时间】:2016-09-23 16:06:58
【问题描述】:
好的,我正在访问一个名为 VENDOR_API_SERVER 的远程服务器以获取各种数据。我有一个在 MY_APP_SERVER 上运行的应用程序,其中包含一个 javascript 文件,该文件使用 AJAX 处理来自/来自 VENDOR_API_SERVER 的请求和响应。然后我有 MY_USER_FACING_APP,它通过 <script> 标签嵌入上述 javascript 文件。所有 3 个应用程序都在不同的主机上运行。当 javascript 文件对 VENDOR_API_SERVER 进行 REST 调用时,我希望它从 MY_APP_SERVER 执行,然后将响应数据提供给 MY_USER_FACING_APP 上的页面。使用下面的配置,javascript 文件正在从 MY_USER_FACING_APP 执行,这是我试图避免的。
MY_APP_SERVER 上的 req.js
URL(示例):http://my_app_server.io/js/req.js
var jqxhr = $.get( "http://vendor_api_server.io/api/dothis", function() {
console.log('request made');
})
.done(function() {
console.log('success - check log');
})
.fail(function() {
console.log('fail - wassup');
})
MY_USER_FACING_APP 上的results.html
URL(示例):http://my_user_facing_server.io/search/results.html
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Results</title>
<script src="http://my_app_server.io/js/req.js"></script>
</head>
<body>
<h1>Results</h1>
</body>
</html>
我在将响应数据提供给 MY_USER_FACING_APP 之前无法由 MY_APP_SERVER 执行该 javascript 文件,我认为必须有一些安全、优雅的方式来使用 MY_APP_SERVER 作为代理/代表,但我遇到了困难把我的头缠在它周围。或者我想要做的可能只是一个巨大的核心黑客......我不知道,因为我对这种类型的开发很陌生。
有任何见解和/或智慧可以传授吗?
【问题讨论】:
-
为什么不在 YOUR_APP_SERVER 中发出服务器端请求而不是 javascript 请求?
-
为什么脚本驻留在 my_app_server 而不是它所属的 my_user_facing_app 上?它有什么特别之处? my_app_server 到底有什么用?
-
是的,无论脚本做什么,您的服务器也可以。但不仅仅是通过执行一个用于浏览器环境的脚本。
-
@Bergi - 我正在尝试执行的 javaScript 是我正在开发的插件。任何选择购买该插件的人都会通过脚本标签将其嵌入他们的应用程序中。为了让我保持控制并向每个用户推送更新,它必须驻留在 MY_APP_SERVER 上。
-
那么 my_user_facing_app 有什么特别之处呢?它似乎只是另一个使用该插件的网页。为什么它需要在服务器端执行插件,不像其他每个页面都有插件?
标签: javascript ajax cross-domain