gpt4 book ai didi

javascript - 一个 jQuery 实例,两个域

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:10 24 4
gpt4 key购买 nike

我有两个页面:a.example.comb.example.com

a.example.com 包含 jQuery

a.example.com 包含一个指向 b.example.com

的 iframe

两个页面都将 document.domain 设置为相同的父域,example.com

我如何使用来自 a.example.com 的 jQuery 包含从内部调用 $.ajax({ url: "b.example.com"}) b.example.com iframe?

换句话说:两个页面目前都可以访问彼此的 Javascript,但我无法在不抛出 XSS 错误的情况下调用 AJAX 函数。也就是说,不在 b.example.com 上也包含 jQuery。如何避免两次包含 jQuery?

iframe 内容示例:

<script>
document.domain = "example.com";

function proxyAjax() {
var jQueryParent = parent.$.sub();

// Chrome gives error: XMLHttpRequest cannot load http://b.example.com/. Origin http://a.example.com/ is not allowed by Access-Control-Allow-Origin.
jQueryParent.ajax({
url : "http://b.example.com/",
success : function() {
console.debug("Success");
}
});
}

proxyAjax();
</script>

最佳答案

设置 document.domain 将不允许您进行跨域 AJAX 调用。如果您真的不需要来自 b.example.com 的请求,您可以这样做:

在 a.example.com 文档中,有这个 JavaScript 函数:

function makeAjaxRequest(callback) {
$.ajax({ url: '...', success: callback })
}

然后在 b.example.com 文档中,有一个脚本调用 a.example.com 文档中的 makeAjaxRequest,并在 b.example.com 中定义一个回调函数。

关于javascript - 一个 jQuery 实例,两个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811655/

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