【问题标题】:How to Render XML from IE in a HTTPS Page?如何在 HTTPS 页面中从 IE 呈现 XML?
【发布时间】:2014-05-07 15:58:31
【问题描述】:

我有一些高级用户需要查看交易的原始 XML。我想我可以在源页面(target="_blank")上有一个链接到一个新页面,该页面将使用Response.Write输出XML,将Content-Disposition标头设置为inline和@987654327 @ 到“文本/xml”。

这适用于 FireFox 和 Chrome,但在 IE10 中,我收到有关“您只想查看安全传送的网页内容吗?”的安全警告

研究表明,当页面包含“混合内容”时会显示此消息。也就是说,当一些内容在“https”中,而一些在“http”中时。在我的场景中情况并非如此,因为整个内容只是 XML 文档,其中甚至不包含对“http”的引用。

我找到了几篇关于这个的文章,他们建议将页面更改为仅使用 https,或者将 IE 安全设​​置更改为“启用”混合内容而不提示:

但是,我的“页面”上没有“http”内容!

如果没有此提示,如何在 IE 中显示“原始”XML 内容?

【问题讨论】:

  • XML文档中的架构规范有http吗?
  • 文档中没有命名空间。
  • 如果你拒绝会发生什么?什么不显示?什么?
  • 我不确定没有显示什么 - 我无法重现它。要求是没有安全警告,否则代码不会被使用。

标签: asp.net xml internet-explorer internet-explorer-10


【解决方案1】:

我这样做是为了我制作的一个内部调试应用程序。它在 IE 中工作,没有任何问题/弹出窗口。但是,它 不是 真正的“原始 XML”,而是更像 xml -> html 以纯文本形式显示在 div 中(尽管仍然看起来像 XML)。我使用 webapi 制作的,也使用了 angularjs,但您可以将 angular 更改为直接 jquery。 不确定您是否只是在获得直接的原始 XML 答案,但如果您只想以文本形式显示 XML,这应该可以帮助您,或者至少给您一些灵感,哈哈:

api action:通过ajax返回xml。 webresponse().response = 包含xml的字符串。

public HttpResponseMessage GetResponse(RequestDTO requestDTO)
{
    return new HttpResponseMessage()
    {
        Content = WebResponse(requestDTO).Response
    };
}

角部分:

$http.post('api/getresponse', requestData)
    .success(function (data) {
        $scope.response.xml = data;
    });

html部分:

<h3>XML Response</h3>
<pre highlight="response.xml" class="xml response"></pre>


编辑

回答您的问题:

“highlight”是一个指令,我想我最初是因为我打算尝试添加代码突出显示,但从未这样做过。但它所做的只是:

angular.element(elem).text(value);

相当于$(jquery).text(value); 函数。

对于xml/response类,它所做的只是XDocument.Parse(xml),返回为new StringContent();

从我的代码中编辑了 sn-p:

protected ResponseDTO WebResponse(RequestDTO requestDTO)
{
    //....
    var response = myRequest.GetXmlResponse(webResponse);

    return new ResponseDTO()
    {
        Headers = new StringContent("....");
        Response = new StringContent(response.ToString())
    };
}
public XDocument GetXmlResponse(HttpWebResponse webResponse)
{
    return XDocument.Parse(xmlResponse(webResponse, Encoding.UTF8));
}

ajax 返回为Content-Type: text/plain; charset=utf-8

【讨论】:

  • 请包括xmlresponse 类,highlight="response.xml" 是解决方案的重要组成部分吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 2020-05-31
  • 1970-01-01
相关资源
最近更新 更多