gpt4 book ai didi

javascript - Firefox 中的跨站点 XmlHttpRequest?

转载 作者:行者123 更新时间:2023-11-29 10:00:41 24 4
gpt4 key购买 nike

我理解(我认为)XmlHttpRequest 对象遵守“相同域”策略。但是,我想创建一个简单的 (POC) 本地 html 文件,它从 Web 服务器下载 XML 并对其执行一些操作(让我们从一个简单的“alert()”开始)。

有可能吗?我需要一个特殊的 Firefox 配置选项吗?

我尝试从中下载的服务器在我的控制之下(它实际上是一个 Google API)。

我的简单尝试是来自 Mozilla's "Using XMLHttpRequest" page 的代码.它从“发送”方法返回一个我不太理解的错误。

免责声明:我主要是一名 C/C++ 开发人员 - 从未进行过任何严肃的 JS 编程,从未尝试过使用这些 API。

最佳答案

XMLHttpRequest 实际上遵循更严格的相同域策略的实现:虽然您可以设置 document.domain 属性以允许从两个子域提供的 JavaScript 相互通信,但您不能使用 XMLHttpRequestObject 来做到这一点。在您的情况下,转到一个完全不同的域,您也无法使用 JavaScript 做到这一点。

有几个选项。首先,您可以使用反向代理使外部站点看起来像是您站点的子域。查看 Apache 的 mod_proxy,特别是 ProxyPassReverse

另一种方法是将数据作为 JSON 对象返回:<script src="foo"> 可以从任何地方检索它想要的任何数据。这样做的缺点是它不是(容易)可重复的(就像来自同一页面的多个请求一样)。

我还建议您使用 Google 搜索“google mashups”。其中大部分位于“googlemashops.com”域中,这使得实现起来容易得多。一些生活在该域之外,可能会给您一些想法。

编辑:与其直接使用 XMLHttpRequest 对象,我建议通过第三方库,例如 prototype.js

关于javascript - Firefox 中的跨站点 XmlHttpRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/392796/

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