iframe判断src是否404错误

负载均衡下文件存储模式使用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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值