一个jQuery实例,两个域
One jQuery Instance, Two Domains
我有两个页面:a.example.com和b.example.comTR
a.example.com包括jQuery
a.example.com包含一个指向b.example.comTR的iframe
两个页面都将document.domain设置为同一父域,example.com
如何使用a.example.com中的jQuery-include从b.example.comframe内部调用$.ajax({url:"b.example.com"})?
换句话说:两个页面目前都可以访问彼此的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的请求,你可以这样做:
在example.com文档中,使用以下JavaScript函数:
function makeAjaxRequest(callback) {
$.ajax({ url: '...', success: callback })
}
然后在b.example.com文档中,使用b.example.com.
makeAjaxRequest
的脚本
相关文章:
- 让两个 jquery 脚本像它们应该的那样协同工作
- 具有相同函数名称的两个 jquery 插件之间的冲突
- 简化两个 jquery 代码
- 两个jquery幻灯片护林员
- 为什么获胜't执行两个Jquery行
- 使用this和not组合两个jQuery语句
- 我很难让两个jquery脚本一个接一个地工作
- 页面上有两个jQuery应用程序,一次只能运行一个
- 同一页面中两个 jquery 手风琴的不同样式
- 如何在两个 jquery ui 选项卡中使用弹性滑块
- Browserify:如何 aviod 两个 jQuery 实例
- 两个jquery插件,第二个不工作
- 如何解决两个 jquery 冲突
- 如何设置两个 jquery cookie
- 同时打开两个 jquery 日期选取器
- 如何处理未捕获的类型错误: $(..).弹出框不是加载两个jQuery文件时的函数
- 这两个jQuery语句中没有错误,但我只是想知道为什么
- 在同一页面中使用两个 jQuery 库
- 两个jQuery选择器有什么区别
- 同一页面上的两个 jQuery 日期选择器具有不同的 CSS 样式