开发者社区> 黄威的世界> 正文

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

简介:
+关注继续查看

1,出现问题的代码:

Js代码  收藏代码
  1. /*** 
  2.     * 请求静态html 模板 
  3.     * @param url 
  4.     * @param $jqueryDiv : 四个主要div之一 
  5.     * @param templateHandle : 自定义,用于使用Dot js模板函数 
  6.     * @param callback : 用于实现模板之后,绑定事件 
  7.     * @param templateData : cia的返回数据 
  8.     */  
  9.    ajaxHtml: function (url, $jqueryDiv, templateHandle, callback, templateData) {  
  10.        xhr.ajaxHtmlCommon(url, $jqueryDiv, null, templateHandle, callback, templateData);  
  11.    },  
  12.    /*** 
  13.     * ajax 请求静态html文件 
  14.     * @param url 
  15.     * @param $jqueryDiv 
  16.     * @param data 
  17.     * @param callback : 回调函数,updateHtml 方法之后执行 
  18.     */  
  19.    ajaxHtmlCommon: function (url, $jqueryDiv, requestData, templateHandle, callback, templateData) {  
  20.        var argument_length = arguments.length;  
  21.        var isHasCallback = (argument_length > 4 && callback && typeof callback === 'function');  
  22.        var options22 = {  
  23.            url: url,  
  24.            type: "GET",  
  25.            timeout: 18000,  
  26.            dataType: 'html',  
  27.            success: function (html) {  
  28.                updateHtml($jqueryDiv, html, templateHandle, templateData);  
  29.                /* var $formInput = jqueryObj.find('textarea:first');//让subContent 中的textarea聚焦 
  30.                 if ($formInput.length != 0) {//先判断能不能获取到textarea 
  31.                 $formInput.get(0).focus(); 
  32.                 }*/  
  33.                if (isHasCallback) {  
  34.                    callback($jqueryDiv, html);  
  35.                }  
  36.            },  
  37.            error: function (er) {  
  38.                if (er.statusText == 'timeout') {  
  39.                    updateHtml($jqueryDiv, "<div style='color: red'>连接服务器超时!</div>");  
  40.                } else {  
  41.                    var errorMessage2;  
  42.                    if (er.responseText) {  
  43.                        errorMessage2 = er.responseText;  
  44.                    } else {  
  45.                        errorMessage2 = er.statusText;  
  46.                    }  
  47.                    console.log('error:' + errorMessage2);  
  48.                    updateHtml($jqueryDiv, errorMessage2, templateHandle, templateData);  
  49.                }  
  50.                if (isHasCallback) {  
  51.                    callback($jqueryDiv, er);  
  52.                }  
  53.            }  
  54.        };  
  55.        if (argument_length > 2 && requestData != null && requestData != undefined) {  
  56.            options22.data = requestData;  
  57.            options22.type = "POST";  
  58.        }  
  59.        $.ajax(options22);  
  60.    }  

浏览器版本:IE8

获取html模板时报错:

Js代码  收藏代码
  1. var ajaxHtml4IE8 = function () {  
  2.             xhr.ajaxHtml('cross_domain.html', $('#crossDiv'), nullnullnull);  
  3.         }  

报错信息:TypeError 拒绝访问 

 

 2,解决方法:

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

Js代码  收藏代码
  1. jQuery.support.cors = true;  

(2) html文件引入

Java代码  收藏代码
  1. <!--[if IE 8]>  
  2.     <script type="text/javascript"  
  3.             src="jQuery.XDomainRequest.js"></script>  
  4.     <![endif]-->  

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

<meta http-equiv="Access-Control-Allow-Origin" content="*">

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
在win10上使用VMware Pro16 安装 CentOS 7.9 设置静态IP 可以访问外网
在win10上使用VMware Pro16 安装 CentOS 7.9 设置静态IP 可以访问外网
77 0
SpringMVC访问静态资源的三种方式
 如果你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。
1544 0
SpringMVC访问静态资源的三种方式
参考地址 如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。
804 0
通过HTTP/2通道实时获取IoT设备状态和数据
通过HTTP/2通道实时获取IoT设备状态和数据 1.服务端订阅 1.1 服务端订阅流程 在IoT场景,有时候我们期望业务服务器能接收到设备状态和设备采集的数据,而不是通过云产品中转, 这时我们可以开启服务端订阅,IoT平台会把设备产生的消息通过HTTP/2通道推送到业务服务器,以便根据自身业务场景消费。
2399 0
SpringBoot-12-之Ajax跨域访问全解析
一.什么是跨域呢? 1.引入: 先讲个故事:从前一个叫8080的大佬和一个8081的大佬各占一方天地,还有一个叫浏览器的大佬和8080还有8081关系都不错。
1229 0
SpringBoot系列:获取当前登录用户IP
SpringBoot系列:获取当前登录用户IP前言今天博主将为大家分享SpringBoot系列:获取当前登录用户IP,不喜勿喷,如有异议欢迎讨论! 有一个强大的地基才能写出健壮的程序! 活不多说上代码控制器方法: package com.
4828 0
DJango 1.8 配置静态资源文件可访问
1、在settings.py中加入静态文件的定义 STATIC_URL = '/static/' //设置STATIC_URL为存储静态文件的路径(基于根目录) STATICFILES_DIRS = ( os.
695 0
+关注
黄威的世界
我是一个热衷IT技术的人,希望自己不断地设计开发出对别人非常有用的软件。有近7年的java开发经验(包括2年Android开发经验)和一年左右的linux使用经验。擅长Java Web后台开发 ,喜欢研究新的各种实用技术
667
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载