IE8 jquery ajax获取静态资源报错TypeError 拒绝访问

阅读更多

1,出现问题的代码:

 /***
     * 请求静态html 模板
     * @param url
     * @param $jqueryDiv : 四个主要div之一
     * @param templateHandle : 自定义,用于使用Dot js模板函数
     * @param callback : 用于实现模板之后,绑定事件
     * @param templateData : cia的返回数据
     */
    ajaxHtml: function (url, $jqueryDiv, templateHandle, callback, templateData) {
        xhr.ajaxHtmlCommon(url, $jqueryDiv, null, templateHandle, callback, templateData);
    },
    /***
     * ajax 请求静态html文件
     * @param url
     * @param $jqueryDiv
     * @param data
     * @param callback : 回调函数,updateHtml 方法之后执行
     */
    ajaxHtmlCommon: function (url, $jqueryDiv, requestData, templateHandle, callback, templateData) {
        var argument_length = arguments.length;
        var isHasCallback = (argument_length > 4 && callback && typeof callback === 'function');
        var options22 = {
            url: url,
            type: "GET",
            timeout: 18000,
            dataType: 'html',
            success: function (html) {
                updateHtml($jqueryDiv, html, templateHandle, templateData);
                /* var $formInput = jqueryObj.find('textarea:first');//让subContent 中的textarea聚焦
                 if ($formInput.length != 0) {//先判断能不能获取到textarea
                 $formInput.get(0).focus();
                 }*/
                if (isHasCallback) {
                    callback($jqueryDiv, html);
                }
            },
            error: function (er) {
                if (er.statusText == 'timeout') {
                    updateHtml($jqueryDiv, "
连接服务器超时!
"); } else { var errorMessage2; if (er.responseText) { errorMessage2 = er.responseText; } else { errorMessage2 = er.statusText; } console.log('error:' + errorMessage2); updateHtml($jqueryDiv, errorMessage2, templateHandle, templateData); } if (isHasCallback) { callback($jqueryDiv, er); } } }; if (argument_length > 2 && requestData != null && requestData != undefined) { options22.data = requestData; options22.type = "POST"; } $.ajax(options22); }

浏览器版本:IE8

获取html模板时报错:

var ajaxHtml4IE8 = function () {
            xhr.ajaxHtml('cross_domain.html', $('#crossDiv'), null, null, null);
        }

报错信息:TypeError 拒绝访问 

 

 2,解决方法:

(1)在js文件头部增加:

jQuery.support.cors = true;

(2) html文件引入jQuery.XDomainRequest.js

(3) 静态html模板前面增加:


IE8 jquery ajax获取静态资源报错TypeError 拒绝访问_第1张图片
 

注意:

(1)静态HTML模板前要增加,表示服务器端支持跨域.

(2)只有IE8 才有跨域拒绝访问的问题,所以引入第三方js文件时,要使用

你可能感兴趣的:(IE8拒绝访问,IE8,跨域,拒绝访问,Permission,Denied)