IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
来源:互联网 发布:丁克 知乎 编辑:程序博客网 时间:2024/05/22 01:36
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模板前要增加<meta http-equiv="Access-Control-Allow-Origin" content="*">,表示服务器端支持跨域.
(2)只有IE8 才有跨域拒绝访问的问题,所以引入第三方js文件时,要使用<!--[if IE 8]>
jQuery.XDomainRequest.js 见附件
参考:https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest
http://stackoverflow.com/questions/10232017/ie9-jquery-ajax-with-cors-returns-access-is-denied
原文转载地址:http://hw1287789687.iteye.com/blog/2228888
0 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错
- 11g RAC不能启动ohasd进程
- Java虚拟机类加载过程
- Windows 7 安全之根本:UAC 详解
- HDU 1061 Rightmost Digit(快速幂入门)
- android 多手指触控
- IE8 jquery ajax获取静态资源报错TypeError 拒绝访问
- 停机测试:我停止了CRS 测试
- android SDK 下载以及更新
- HDU3294 Girls' research
- 使用OC仿写微博项目中使用到的小技巧
- 在Xcode7项目集成友盟之后XIB报警告解决方法
- 考研啦 博客更新的少啦
- CFSocket相关(未完待续)
- C# 获取mp3文件的歌曲时间长度