gpt4 book ai didi

javascript - 让我们完全在客户端使用脚本标签解决跨域ajax

转载 作者:行者123 更新时间:2023-12-02 20:48:13 24 4
gpt4 key购买 nike

我知道,有 JSONP,它涉及服务器合作来命名数据空间。

令我困扰的是,脚本标签 src 的内容已评估,但可供读取。 p>

<script src="http://www.google.com"></script>

我们需要弄清楚的是如何命名数据,仅此而已。当然,我尝试了相当愚蠢的事情,但没有相关结果(我知道这不起作用,但你可以看到我想要实现的目标):

<script>eval('var namespace="');</script>
<script src="http://www.google.com"></script>
<script>eval('";');</script>

由于确实没有关于如何评估 src 内容的相关信息,我知道它是全局范围,但如果我们可以跟踪评估步骤或者可能以某种方式评估范围(关于此的文档也很少),我们可以解决这个恼人的“已评估但不可读”的问题。

有什么想法吗?

最佳答案

HTML5 提供了 window.postMessage,它提供了安全跨域消息传递的机制,并受 Firefox 3、Opera 9.6 和 WebKit nightlies 的支持。

也就是说,您上面的建议不起作用,因为它需要与 javascript 的 eval 完全不同的行为。 eval 在当前上下文中解析并执行给定的字符串——您所请求的是 eval 更改包含函数的实际代码。例如。

 for (var i = 0; i < 10; i++) eval("; doSomething();");

会变成

 for (var i = 0; i < 10; i++) ; doSomething();;

意味着 for 循环变空,并且 doSomething 只会被调用一次。显然,这会导致语义难以理解,并且大大降低了使用安全性,因为 eval 将获得直接影响控制流的能力。

关于javascript - 让我们完全在客户端使用脚本标签解决跨域ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/551363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com