zoukankan      html  css  js  c++  java
  • IE9 下面, XMLHttpRequest 是不支持跨域请求的解决方法

    在 IE9 下面, XMLHttpRequest 是不支持跨域请求的. IE10 的 XMLHttpRequest 支持跨域, 而 IE8, IE9 需要使用 XDomainRequest 来实现跨域.

    .factory("ie9Http",["$q",function($q){ // ie9 xmlHttp 不支持cors跨域解决方案
            return { 
                fetchIe9: function (url, options) {
                    var deffered = $q.defer();
                    if (window.XDomainRequest) { // ie9支持此属性
                        var method = options.method || 'GET';
                        var timeout = options.timeout || 30000;
                        var  data = options.body || options.params || {};
                        if (data instanceof Object) {
                            data = JSON.stringify(data);
                        }
                        var XDR = new XDomainRequest();
                        XDR.open(method, url);
                        XDR.timeout = timeout;
                        XDR.onload = function(){
                            try {
                                var json = JSON.parse(XDR.responseText);
                                deffered.resolve(json);
                            } catch (e) {
                                deffered.reject(e);
                            }
                        };
                        XDR.ontimeout = function(){return deffered.reject('XDomainRequest timeout');};
                        XDR.onerror = function(){return deffered.reject('XDomainRequest error');};
                        XDR.send(data);
                    } else {
                        deffered.reject({err:'不支持XDomainRequest对象'});
                    }
                    return deffered.promise;
                }
            };
        }])

    参考文章: http://web.jobbole.com/94725/

  • 相关阅读:
    重构后的ConditionHelper
    重构ConditionHelper
    用shell求两个文件的差集
    文件落盘的逻辑
    [转]undefined reference问题总结
    动态生成xml文件
    32位,64位的一些问题
    树数据结构的实际应用
    线程池中的栅栏
    关于线程池的理解
  • 原文地址:https://www.cnblogs.com/evaling/p/9378528.html
Copyright © 2011-2022 走看看