gpt4 book ai didi

javascript - 同源问题(文件上传)

转载 作者:行者123 更新时间:2023-11-29 15:50:46 24 4
gpt4 key购买 nike

客户端在域 foo.com 上,需要上传(发送 POST XMLHttpRequest)到 upload.foo.com

由于同源政策,这受到限制。
然而,我设法想出的解决方法是,在 foo.com 上动态创建 iframe 打开 upload.foo.com 和附加执行来自 upload.foo.com 的 POST 请求的 JavaScript 代码,如下所示:iframe.onLoad [..]

(a=(b=doc)
.createElement('script'))
.src='http://foo.com/upload.php?'+Math.random(),
b.body.appendChild(a);
void(0);

现在,对我来说这似乎是多余的:如果后者是可能的,我的逻辑告诉我前者也应该是可能的。是吗?

-- 更新

我刚刚注意到子域上有一个文件包含这个:

<?xml version="1.0" ?> 
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-access-from domain="*.foo.com" secure="false" />
</cross-domain-policy>

我能以某种方式利用它吗?

最佳答案

XMLHttpRequest 对 document.domain 不敏感,因为该对象出于安全原因需要相互选择加入,并且 XHR 无法知道目标可能希望将 document.domain 值设置为什么。为了让 SiteA 与 SiteB 上的站点的 DOM 进行交互,两个站点必须共享一个公共(public)的私有(private)域后缀,并且都必须通过将 document.domain 设置为其公共(public)后缀来选择加入通信。

您的跨域策略文件实际上没有多大意义(因为它选择加入所有内容,然后选择所有内容的子集)但它用于 Flash,而不是 XHR(使用 CORS)。

关于javascript - 同源问题(文件上传),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789838/

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