负载均衡下文件存储模式使用http://访问失败
目前针对这样的情况,项目采用的是共享虚拟目录解决
但是分享下之前在前端的处理方式
就是判断当前地址在iframe里面是否是404 如果是404 就换下一个服务器的地址
iframe里面没法判断404 因为没有加载完成事件 onLoad是加载的时候
网站找判断status的 对不同浏览器 还不行
所以改成使用 jQ 的load方法,返回status是有success和error
$("#mm").load($("#hid_FileUrl").val(), function (response, status, xhr) {
if (status == "success") {
上面这个方法不能跨域,跨域使用
$.ajax({
url: $("#hid_FileUrl").val(),
type: 'GET',
success: function (data) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
以前的源代码
<%@ Page Title="" Language="C#" MasterPageFile="~/FormUI/Master/FormUIMaster.Master" AutoEventWireup="true" CodeBehind="FileOnline.aspx.cs" Inherits="Zemt.Process.Web.FormUI.AjaxDownFile.FileOnline" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:HiddenField ID="hid_FileUrl" ClientIDMode="Static" runat="server" />
<iframe id="fileShow" src="" width="100%" scrolling="auto" frameborder="0"></iframe>
<div id="mm"></div>
<script type="text/javascript">
$(function () {
$("#fileShow").css("height", (parseInt(document.documentElement.clientHeight) - 5) + "px");
window.onresize = function () {
$("#fileShow").css("height", (parseInt(document.documentElement.clientHeight) - 5) + "px");
}
checkSrc();
});
function checkSrc() {
$("#mm").load($("#hid_FileUrl").val(), function (response, status, xhr) {
if (status == "success") {
$("#fileShow").attr("src", $("#hid_FileUrl").val());
return;
} else {
var src = $("#hid_FileUrl").val();
if (src.lastIndexOf("xxx1.xxx.xx") > -1) {
src = src.replace("xxx1.xxx.xxx", "xxx2.xxx.xx");
}
else if (src.lastIndexOf("xxx2.xxx.cn") > -1) {
src = src.replace("xxx2.xxx.cn", "xxx1.zxxx.cn");
}
else if (src.lastIndexOf("10.0.128.22") > -1) {
src = src.replace("10.0.128.22", "10.0.128.23");
}
else if (src.lastIndexOf("10.0.128.23") > -1) {
src = src.replace("10.0.128.23", "10.0.128.22");
}
else if (src.lastIndexOf("10.0.126.98") > -1) {
src = src.replace("10.0.126.98", "10.0.126.97");
}
$("#hid_FileUrl").val(src);
}
setTimeout("checkSrc()", 200);
});
}
</script>
</asp:Content>