解决ASP.NET AJAX在frame及iframe中跨域访问的问题

原创 2007年09月29日 09:59:00
1、为ScriptManager添加脚本引用,不从ScriptResource.axd中加载MicrosoftAjax.js脚本,而是直接加载
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
        
<Scripts>
            
<asp:ScriptReference Name="MicrosoftAjax.js" ScriptMode="auto" Path="~/ScriptLibrary/System.Web.Extensions/1.0.61025.0/MicrosoftAjax.js" />
        
</Scripts>
    
</asp:ScriptManager>

2、修改MicrosoftAjax.debug.js
删除
switch(Sys.Browser.agent) {
    
case Sys.Browser.InternetExplorer:

case Sys.Browser.Safari:
之间的脚本,替换为如下脚本:
Sys.UI.DomElement.getLocation = function(element) {
    
if (element.self || element.nodeType === 9return new Sys.UI.Point(0,0);
    
var clientRect = element.getBoundingClientRect();
    
if (!clientRect) {
        
return new Sys.UI.Point(0,0);
    }

    
var ownerDocument = element.document.documentElement;
    
var offsetX = clientRect.left - 2 + ownerDocument.scrollLeft,
        offsetY 
= clientRect.top - 2 + ownerDocument.scrollTop;
    
    
try {
        
var f = element.ownerDocument.parentWindow.frameElement || null;
        
if (f) {
            
var offset = 2 - (f.frameBorder || 1* 2;
            offsetX 
+= offset;
            offsetY 
+= offset;
        }

    }

    
catch(ex) {
    }
    
    
    
return new Sys.UI.Point(offsetX, offsetY);
}

break;
 

相关文章推荐

解决同一IP不同端口或跨域访问站点iframe应用session丢失的问与及ASP.NET 开发相关超时设置

解决办法一: Iframe  Session 丢失 跨域: http://support.microsoft.com/kb/323752 解决办法二 在网站群的建设中,各子站需要共享主站的foo...
  • hyhyct
  • hyhyct
  • 2012年02月27日 22:10
  • 3364

关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案

文章来源:http://www.cnblogs.com/chenxizhang/p/3821703.html 问题描述 当跨域(cross domain)调用ASP.NET M...

asp.net页面中Menu控件下拉菜单被frame挡住和iframe自适应高度的解决办法

 当你在做一个仿windows程序的顶部菜单框架的时候,在asp.net中你可能会使用两个frame,一个frame在上面用来放菜单一个frame在下面用来方菜单点击后打开的页面.页面实现很简单,单运...

java.net 解决ajax跨域访问问题

业务系统A需要从我负责的网站首页中添加链接访问到他们的业务系统中,他给我提供了文档,文档中又他们系统的url,需要参数名及返回的json格式。想当然的就用ajax去请求,可是请求返回的json始终不对...

支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例

随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细。比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑。注意,这里是...
  • hoiven
  • hoiven
  • 2016年05月10日 14:24
  • 1450

Asp.net WebAPI对Ajax和Angularjs跨域的支持

什么是跨域请求?假设我们请求的地址A:http://api.xx.com/api/GetAllPeople,那如果在B页面 http://www.baidu.com/tlzzu.html中使用POST...

在ASP.NET MVC中简单使用跨域Ajax

什么是跨域Ajax,我们都知道Ajax,可以用服务器进行少量数据交互的技术。所谓跨域,简单的理解,就是跨越域名去访问,当你的网站要访问别人网站数据的时候,就必须使用跨域Ajax。 言归正传,首先来看客...

ASP.NET MVC 实现 AJAX 跨域请求

ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的是非ActionResult类型,控制器将会将结果转换为...

ASP.net Web API允许跨域访问解决办法

遇到此跨域访问问题,解决办法如下: 1. 在web.config中增加customHeaders,如下图:                                       ...

完美解决iframe跨域问题

  • 2016年04月18日 14:37
  • 237KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决ASP.NET AJAX在frame及iframe中跨域访问的问题
举报原因:
原因补充:

(最多只允许输入30个字)