• 跨域请求Ajax(POST)处理方法


    getXSSAjax(function() {  //跨域请求
            that.ajaxDara(self);
    },
    (bs_tita.webapi || "http://webapi.tita.com") + "/iframe.html");  


     //跨域请求
    function getXSSAjax(callback, iframeUrl){
        // avoid
    error of calling many time in initializing page
        getXSSAjax.callbacks =
    getXSSAjax.callbacks || [];

        var frameId =
    "_bs_js_xss_"+iframeUrl;
        var iframe =
    document.getElementById(frameId);
        if(!iframe){
            iframe =
    document.createElement('iframe');
            iframe.id = frameId;
           
    iframe.style.display="none";
            iframe.src = iframeUrl;

           
    if(iframe.attachEvent){
                    iframe.attachEvent("onload",
    loadHandler);
            } else {
                    iframe.onload =
    loadHandler;
            }
           
    getXSSAjax.callbacks.push(callback);

           
    document.body.appendChild(iframe);                      
        }else{
       
        if(getXSSAjax.loaded){
                callback && callback();   

            }else{
                getXSSAjax.callbacks.push(callback);
       
        }
        }
        function loadHandler () {
            var domainFields =
    document.domain.split('.');
            var len = domainFields.length;
           
    document.domain=domainFields[len-2]+"."+domainFields[len-1];
           
    getXSSAjax.loaded = true;

            $.ajaxPrefilter( function( options )
    {
                    var domain =
    iframe.src.split('/').slice(0,3).join('/');
                   
    if(options.url.indexOf(domain) == 0){
                        // used in
    ie6
                        $.support.cors = true;

                       
    options.xhr = function(){
                        var iframeWindow =
    iframe.contentWindow;
                        return iframeWindow.XMLHttpRequest?
    new iframeWindow.XMLHttpRequest() : iframeWindow.ActiveXObject ? new
    iframeWindow.ActiveXObject("Microsoft.XMLHTTP") : new
    iframeWindow.XMLHttpRequest();
                        };
                   
    }
            });

            for (var i = 0, l=getXSSAjax.callbacks.length; i
    < l; i++) {
                var callback = getXSSAjax.callbacks.pop();
       
            callback && callback();   
            };
        }
    }

  • 相关阅读:
    转发:前端新人少走弯路
    react 表单(受控组件和非受控组件)
    axios封装的拦截器的应用
    react与redux的一点心得(理解能力有限,蜗牛进度)
    redux一些自习时候自己写的的单词
    react路由的跳转和传参
    学以致用,react学习前奏准备阶段
    原型,原型链,给予原型和class的继承
    rpm安装和卸载
    .net项目发布到iis
  • 原文地址:https://www.cnblogs.com/AngryXiaopeng/p/3473515.html
Copyright © 2020-2023  润新知