IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
来源:互联网 发布:js删除a标签 编辑:程序博客网 时间:2024/06/13 23:49
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, "<div style='color: red'>连接服务器超时!</div>"); } 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
<!--[if IE 8]> <script type="text/javascript" src="jQuery.XDomainRequest.js"></script> <![endif]-->
(3) 静态html模板前面增加:
< meta http-equiv=”Access-Control-Allow-Origin” content=”*”>
注意:
(1)静态HTML模板前要增加,表示服务器端支持跨域.
(2)只有IE8 才有跨域拒绝访问的问题,所以引入第三方js文件时,要使用< !–[if IE 8]>
(3)jquery-1.11.1.js 及以上版本不支持IE8
jQuery.XDomainRequest.js 见附件
参考:https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest
http://stackoverflow.com/questions/10232017/ie9-jquery-ajax-with-cors-returns-access-is-denied
1 0
- IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
- IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
- IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
- file解决IE8中文件上传报typeerror拒绝访问问题的解决方法
- ie8 ajax拒绝访问的解决办法
- jquery ajax报Uncaught TypeError :Illegal invocation
- thinkphp5 访问静态资源 报错 static
- TypeError: a(...).live is not a function(jquery.unobtrusive-ajax.min.js 引入报错)
- JQuery报错Uncaught TypeError: Illegal invocation
- $.ajax请求数据 IE报 no transport 或拒绝访问
- 引入jquery等(静态资源)报404
- jQuery $.ajax()直接远程跨域访问服务器报错
- IE8下jquery报错:意外地调用了方法或属性访问。
- 上传文件,报错,文件夹拒绝访问
- 文件上传拒绝访问报错
- IE8访问应用表单提示‘拒绝访问’
- 文件上传组件用到iframe在IE8,9中报拒绝访问的错误
- ajax请求报Uncaught TypeError: Illegal invocation错
- redis主从服务器配置
- linux openssl加密文件
- 采用HI3520D实现HDMI转码以太网传输数据控制器
- 学习MongoDB 八: MongoDB索引(索引限制条件)(二)
- 动态规划求解编辑距离
- IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
- 结构体
- 函数的返回类型
- 堪称最好的A*算法
- 递归删除成功的条件
- Android:自定义View实现随滑动由箭头变对勾的指示按钮
- Android消息处理机制—— Looper, Handler, Message
- 与编程相关的计算机硬件
- Spring获取Web应用根目录的方法