小编典典

如何克服此安全问题

ajax

我实现了一个ajax轮询脚本,该脚本每10秒在服务器Controller中调用一次操作。通过响应,我替换了的内容div

function getFoo() {
    var link = '/Secure/GetFoo';

    $.post(link, function (response) {
        $('#FooSection').replaceWith(response);
    });

    setTimeout("getFoo();", 10000);
}

这是通过 https 完成的。经过一段时间的“空闲”,IE会显示以下消息:

该页面正在访问不受其控制的信息。这带来了安全风险。你想继续吗?

如果用户单击“ 是” ,则页面将重定向到div仅显示响应的页面。如果用户单击“ 否” ,则什么都不会发生,但是div不会刷新容器。

我知道我可以通过浏览器设置隐藏此消息,但这只会使我进入上述对话框的默认“ 是” 选择。

之前也曾提出过类似的问题,但不幸的是,目前还没有任何解决方案。我基本上希望即使在 安全 连接上也可以进行我的Ajax轮询工作。有任何想法吗?


阅读 197

收藏
2020-07-26

共1个答案

小编典典

您永远不会在Internet-Zone页面上看到该对话框。默认情况下,此操作会在Internet区域中自动静音并被自动阻止。

该对话框出现在Intranet区域中有两个根本原因:

1>尝试使用XMLHTTPRequest对象进行跨域请求(http://blogs.msdn.com/b/ieinternals/archive/2011/04/22/ie-
security-prompt-page-accessing-cross-domain -信息不属于它的控件.aspx)

2>尝试将承载HTML的OBJECT标签导航到跨源页面。

您可以通过使用XDomainRequest而不是XMLHTTPRequest来避免情况#1。通过使用IFRAME而不是OBJECT标签,可以避免情况#2。

2020-07-26