我有一些高级用户需要查看事务的原始XML。我以为我可以在源页面上使用target(“_ = _ blank”)链接到一个新页面,该页面只使用Response.Write
输出XML,并将Content-Disposition
标头设置为{{1 }和inline
到“text / xml”。
这适用于FireFox和Chrome,但在IE10中,我收到有关“您是否只想查看已安全发送的网页内容?”的安全警告。
研究显示,当页面包含“混合内容”时,会显示此消息。也就是说,当某些内容是“https”时,有些内容是“http”。在我的场景中情况并非如此,因为整个内容只是XML文档,它甚至不包含对“http”的引用。
我发现了几篇关于此的文章,他们建议将页面更改为仅使用https,或者将IE安全设置更改为“启用”混合内容而不提示:
但是,我再次在“页面”上没有“http”内容!
如果没有此提示,我如何在IE中显示“原始”XML内容?
答案 0 :(得分:1)
我为我做的内部调试应用做了这个。它在IE中工作,没有任何问题/弹出窗口。但是,不真的"原始XML",但更像是xml - >显示在div中的html(仍然看起来像XML)作为纯文本。我使用webapi制作它,也使用了angularjs,但你可以将角度改为直线jquery。 不确定你是否只是在直接的原始XML答案之后,但如果你只是想以文本形式显示XML,这应该会帮助你或者至少给你一些灵感lol:
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>
<小时/> 的修改
回答你的问题:
&#34;突出&#34;是一个指令,我想我最初是因为我将尝试添加代码突出显示,但从未这样做过。但所有这一切都是这样的:
angular.element(elem).text(value);
相当于$(jquery).text(value);
函数。
对于xml / response类,它只是XDocument.Parse(xml)
,并返回new StringContent();
我的代码中编辑过的代码段:
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