【发布时间】:2009-02-20 16:36:08
【问题描述】:
我有一个通过 AJAX 从 WCF REST 服务获取 HTML 内容的页面。我开始在 IE 上看到错误,大意是“此页面正在访问不受其控制的信息......”。对于某些内容,WCF 服务不会直接返回内容,而是返回一个对象或 iframe 标记,该对象或 iframe 标记以不同的参数指向自身。 WCF 服务看到的 URL 与请求的不同,并且差异导致“安全”错误,因为 IE 认为它正在从不同的域加载内容。
例如,XHR 请求要求
“http://localhost/Services/Content.svc?id=123...” 甚至 "http://mymachine/Services/Content.svc?id=123..."
但是,一旦请求到达 WCF 服务,URL 就会变成:
“http://mymachine.mydomain.com/Services/Content.svc?id=123...”
如何在 WCF 服务中获取最初请求的 URL?我检查了 WebOperationContext.Current.IncomingRequest.UriTemplateMatch 属性无济于事,没有“localhost”的剩余痕迹。我还查看了以下帖子,但仍然找不到原始 URL:
What is the WCF equivalent of HttpContext.Current.Request.RawUrl?
http://jstawski.com/archive/2008/05/01/wcf-wsdl-location-address-with-https.aspx
有什么办法吗?
【问题讨论】:
-
这种行为是否只发生在 IE 中?
-
是的,只有 IE7 抱怨安全问题。在 FF3、Chrome 1.0 上运行良好。没有在 IE6 中测试过...