Ale*_* R. 28 javascript security ajax https asp.net-mvc-2
我已经实现了一个ajax-polling脚本,每10秒调用服务器控制器中的一个动作.通过响应,我替换了以下内容div:
function getFoo() {
var link = '/Secure/GetFoo';
$.post(link, function (response) {
$('#FooSection').replaceWith(response);
});
setTimeout("getFoo();", 10000);
}
Run Code Online (Sandbox Code Playgroud)
这是通过https完成的.在"空闲"一段时间后,IE显示以下消息:
此页面正在访问不受其控制的信息.这带来了安全风险.你想继续吗?
如果用户单击" 是",则页面将重定向到div仅显示响应.如果用户单击" 否",则不会执行任何操作,但div不会刷新容器.
我知道我可以通过浏览器设置来抑制此消息,但这将使我按照上面的对话框进入默认的Yes选择.
之前已经提出类似的问题,但不幸的是没有任何解决方案.我基本上想要在安全连接上进行ajax-polling工作.有任何想法吗?
Eri*_*Law 15
您永远不应该在Internet-Zone页面上看到该对话框.默认情况下,此操作在Internet区域中以静默方式自动阻止.
该对话框出现在Intranet区域中有两个根本原因:
1>尝试使用XMLHTTPRequest对象执行跨源请求(http://blogs.msdn.com/b/ieinternals/archive/2011/04/22/ie-security-prompt-page-accessing-cross-domain - 信息 - 未处于其-control.aspx)
2>尝试将托管HTML的OBJECT标记导航到跨源页面.
您可以通过使用XDomainRequest而不是XMLHTTPRequest来避免大小写#1.您可以使用IFRAME而不是OBJECT标记来避免大小写#2.
前几天我遇到了类似的问题,无法找出为什么IE会在AJAX请求后抱怨.
我使用了Firebug的网络控制台,只是逐个完成了请求,直到我找到了一个http://而不是https://,我建议你这样做 - 我们几乎不可能在没有它的情况下进行调试看到页面,但它可能只是没有通过https加载的背景图像.
注意: 我确实注意到你说它是IE,但是像这样的问题可能不是浏览器特定的,Firefox/Chrome就像IE那样对非https元素没有做同样的大惊小怪.
| 归档时间: |
|
| 查看次数: |
15829 次 |
| 最近记录: |