两个应用系统的页面之间需要用javascript交互,一般情况下比如子页面调用父页面的操作window.parent....这时会抛出一个javascirpt错误,提示没有权限。
实际这是浏览器禁止了javascript跨域访问。
今天测试了一下,发现如果在一个应用服务器下发布的两个应用,链接的url只是在路径上有不同,比如http://localhost:8080/proXX,这样的两个应用界面可以相互调用。
如果不在同一应用下就有以下的方式:
1、设置document.domain
前提条件:两个页面同属于一个基础域(例如都是tb.com);同一协议(例如都是http);同一端口(例如都是80)。
方法:设置两个页面的document.domain都设置为自己所在的基础域名。
例子:a.tb.com里面的一个页面需要调用b.tb.com里的一个对象,则将两个页面的document.domain都设置为tb.com,就可以了。
document.domain 的使用和需要注意的
在 JavaScript 中我们可以通过在页面中加入如下声明来强制指定页面所属的域。
<script language="JavaScript">
<!--
document.domain = "tb.com"; //指定 document 所属的域
-->
</script>
document.domain 属性是不可以随便设置的,它只能被设置为文件所属域的上级域。
只有当两个域存在相同的上级域时,才能通过指定 document.domain 来实现它们之间的数据交换,并且 document.domain 属性必须被 设置为二者的公共域。
并非所有的浏览器都支持对 document.domain 属性进行设置。如 MSIE 和 Netscape 它们4.0以前的版本是不支持对该属性的设置的;另外有趣的是虽然 Netscape 在4.0以后开始支持对 domain 进行设置了,但在4.03 和4.04两个版本中 Netscapre 居然又把上面的功能给取消了。
2、在服务器端设置代理(所谓的小偷程序)
跨域的请求同样发送到本地服务器端,由服务器端的代理来请求相应的数据,然后发送给浏览器端。这样实际上浏览器端的所有请求都是发到相同的域,在服务器端代理的帮助下,实现了跨域的能力。
分享到:
相关推荐
在Web开发中,"跨域调用"是一个关键的话题,特别是在使用JavaScript进行AJAX操作时。由于浏览器的同源策略(Same-Origin Policy),一个域下的文档或脚本不能请求另一个域下的资源,除非这两个域完全相同。这限制了...
JavaScript(JS)与Windows Communication Foundation(WCF)服务之间的跨域调用是Web开发中常见的需求,尤其是在构建分布式系统和前后端分离的应用时。本文将详细介绍如何实现JS跨域调用WCF服务,并通过一个控制台...
本文将详细介绍如何使用JS进行跨域调用,特别是结合WCF(Windows Communication Foundation)技术和WebServiceHost类。 首先,了解WCF是微软提供的一种面向服务的架构,用于构建、配置和部署服务。它可以支持多种...
【JavaScript跨域调用基于JSON的RESTful API】 在Web开发中,JavaScript是客户端脚本语言,主要用于增强用户界面和实现动态交互。然而,由于浏览器的同源策略(Same Origin Policy),JavaScript在处理AJAX...
标题:“js跨域调用WebService的简单实例”主要探讨了如何在JavaScript中进行跨域调用WebService的问题,并提供了一个具体的实现示例。这个知识点是在Web开发中常见的问题,当前端JavaScript需要与后端进行数据交互...
而随着技术的发展,出现了几种解决JavaScript跨域调用基于JSON的RESTful API的方法。 ### AJAX与JSON 首先需要了解AJAX(异步JavaScript和XML)是一种用于创建快速动态网页的技术。它允许JavaScript通过HTTP请求与...
但是,通过特定的技术手段,我们可以实现iframe跨域调用父窗口的JavaScript方法。本教程将详细讲解这一过程。 首先,我们需要了解同源策略。同源策略是浏览器为了保护用户安全而实施的一项机制,它规定只有当两个...
JSON跨域调用是Web开发中的一个重要概念,特别是在前端与后端交互时,由于浏览器的同源策略限制,JavaScript无法直接发起对不同源的HTTP请求。然而,JSONP(JSON with Padding)是一种绕过同源策略的技术,常用于...
在WCF中实现跨域调用,我们需要配置服务以允许来自不同源的请求。 以下是实现AJAX跨域调用WCF服务的具体步骤和相关知识点: 1. **开启WCF服务的跨域支持**:在WCF服务的配置文件(通常是ServiceName.svc.cs或...
在GIS(地理信息系统)开发中,ArcGIS JavaScript API(arcgis js)是Esri公司提供的一款强大的Web GIS开发工具,用于构建地图应用。然而,在实际开发过程中,由于浏览器的同源策略限制,当我们在不同域名下尝试访问...
这个“MVC+WebAPI跨域调用.rar”压缩包文件提供了一个简单的示例,用于演示如何使用jQuery在MVC(Model-View-Controller)框架下调用WebAPI实现跨域通信。 **什么是MVC模式?** MVC是一种流行的设计模式,广泛应用...
跨域问题通常在 JavaScript 中是个常见的安全限制,浏览器不允许脚本从一个源(域名、协议或端口)请求另一个源的资源,以防止恶意网站通过脚本读取其他网站的数据。在 PDF.js 原版中,如果 PDF 文件存储在与网页...
本篇文章将详细探讨如何使用JQuery实现跨域调用Windows Communication Foundation (WCF)服务。 **一、理解跨域** 跨域是指浏览器的同源策略限制了JavaScript从一个域名下的网页向另一个域名下的资源发送Ajax请求。...
在本文中,我们将深入探讨如何在Silverlight 2应用程序中实现跨域调用Web服务。首先,理解跨域调用的背景非常重要。由于浏览器的安全策略,JavaScript和由此产生的技术(如Silverlight)默认禁止跨域请求,以防止...
### jQuery 跨域调用 WebService 的实现方法 在现代Web开发中,跨域问题是一个常见的挑战,尤其是在涉及不同源的服务交互时。本文将详细解释如何利用jQuery通过JSONP(JSON with Padding)的方式实现跨域调用...
JavaScript跨域对象类是一种在Web开发中解决同源策略限制的技术。同源策略是浏览器为了保护用户数据安全而设定的一项安全政策,它规定了只有来自相同域名的HTTP请求才能互相访问资源,不同源的请求会被阻止。然而,...