【发布时间】:2014-07-16 14:24:21
【问题描述】:
假设我有一个带有以下代码的 js 页面(上传到某个服务器,地址为:myaddress/service.js):
nsBob = {
a: function(someParam) {...do something here and return result},
b: function() {...do something here and return result},
c: function() {...do something here and return result}
};
现在假设我有一个应用程序,在不同的域中,我想使用 nsBob 的功能之一。例如 nsBob.a(something)。
我怎样才能在不同的域中对这个特定的函数进行这个简单的 ajax 调用,以便仅获取该函数的结果数据? 有或没有传递参数。 如果您能以某种方式向我展示一个完整的工作示例,我将不胜感激。
非常感谢!
【问题讨论】:
-
如果您知道该链接,您可以通过编写服务器脚本来获取它然后将其呈现到页面来规避跨域问题。例如:
<?php echo file_get_contents('website_address');?>,然后在代码中使用所需地址的参数引用此服务器文件。 -
如何在没有任何 php 代码但只使用 javascript 调用的情况下做到这一点?
-
防止其他人看到此代码的唯一方法是通过某种身份验证。由于身份验证令牌和不能使用
<script>标签发送的内容,您唯一的选择是将其作为文本获取(同时正确遵循 CORS)并对其进行评估,或者首先不担心它。混淆并不能阻止人们看到代码是如何工作或重用它的,即使使用 CORS 选项,下载它的客户端也可以看到它。最好的选择是不用担心,将敏感内容移出客户端代码。
标签: javascript ajax api