1、有过这样一段代码,是ajax

$.ajax({url: "http://127.0.0.1:9001",type: "POST",data: JSON.stringify({"reqMsg":"12345"}),dataType: 'json',timeout: 1000 * 30,success: function (response) {if(response.n=='6'){dosomething();init();}else if(response.n=='3'){init();}},error: function(xhr, type){init();}});

2、在谷歌、IE11等浏览器测试没有问题,但是碰巧客户现场是IE8,9这种浏览器,内网系统没办法升级。出现跨域ajax请求插件直接error的情况

3、解决方案在github上找到了解决办法,https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest    这个路径下表述了如何解决Cross-Domain AJAX for IE8 and IE9此类问题。

4、首先需要再页面引入 jquery.xdomainrequest.min.js

<script type="text/javascript" src="<%=basePath%>resources/js/jquery.min-1.9.1.js"></script>
<script type="text/javascript" src="<%=basePath%>resources/js/jquery.xdomainrequest.min.js"></script>

5、然后再正常写ajax之前,加上一句jQuery.support.cors = true;

jQuery.support.cors = true;
$.ajax({url: "http://127.0.0.1:9001",type: "POST",data: JSON.stringify({"reqMsg":"12345"}),dataType: 'json',timeout: 1000 * 30,success: function (response) {if(response.n=='6'){dosomething();init();}else if(response.n=='3'){init();}},error: function(xhr, type){init();}});

6、这样就解决了。最后附上jquery.xdomainrequest.min.js 源码

/*!* jQuery-ajaxTransport-XDomainRequest - v1.0.3 - 2014-06-06* https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest* Copyright (c) 2014 Jason Moon (@JSONMOON)* Licensed MIT (/blob/master/LICENSE.txt)*/
(function(a){if(typeof define==='function'&&define.amd){define(['jquery'],a)}else if(typeof exports==='object'){module.exports=a(require('jquery'))}else{a(jQuery)}}(function($){if($.support.cors||!$.ajaxTransport||!window.XDomainRequest){return}var n=/^https?:\/\//i;var o=/^get|post$/i;var p=new RegExp('^'+location.protocol,'i');$.ajaxTransport('* text html xml json',function(j,k,l){if(!j.crossDomain||!j.async||!o.test(j.type)||!n.test(j.url)||!p.test(j.url)){return}var m=null;return{send:function(f,g){var h='';var i=(k.dataType||'').toLowerCase();m=new XDomainRequest();if(/^\d+$/.test(k.timeout)){m.timeout=k.timeout}m.ontimeout=function(){g(500,'timeout')};m.οnlοad=function(){var a='Content-Length: '+m.responseText.length+'\r\nContent-Type: '+m.contentType;var b={code:200,message:'success'};var c={text:m.responseText};try{if(i==='html'||/text\/html/i.test(m.contentType)){c.html=m.responseText}else if(i==='json'||(i!=='text'&&/\/json/i.test(m.contentType))){try{c.json=$.parseJSON(m.responseText)}catch(e){b.code=500;b.message='parseerror'}}else if(i==='xml'||(i!=='text'&&/\/xml/i.test(m.contentType))){var d=new ActiveXObject('Microsoft.XMLDOM');d.async=false;try{d.loadXML(m.responseText)}catch(e){d=undefined}if(!d||!d.documentElement||d.getElementsByTagName('parsererror').length){b.code=500;b.message='parseerror';throw'Invalid XML: '+m.responseText;}c.xml=d}}catch(parseMessage){throw parseMessage;}finally{g(b.code,b.message,c,a)}};m.οnprοgress=function(){};m.οnerrοr=function(){g(500,'error',{text:m.responseText})};if(k.data){h=($.type(k.data)==='string')?k.data:$.param(k.data)}m.open(j.type,j.url);m.send(h)},abort:function(){if(m){m.abort()}}}})}));

转载于:https://www.cnblogs.com/city-light/p/10598550.html

跨域(Cross-Domain) AJAX for IE8 and IE9相关推荐

  1. Ajax用证书调用,跨域的jQuery AJAX调用,带证书(Cross domain jQuery ajax call

    我已经遵循以下步骤: 获取服务器允许跨域调用(与所有的标题和东西) 这个工程 测试服务器与一些跨域调用此作品 获取服务器以强制证书这工作 一起去参加一个浏览器的服务器上的文件,选择合适的证书,并看到该 ...

  2. ie8 jquery ajax 跨域访问,jQuery.Ajax IE8,9 无效(CORS跨域)

    今天在开发网站的时候,发现一个问题,$.ajax()在 IE8,9 浏览器不起作用,但 Chrome,Firefox ,360,IE10以上等浏览器却是可以的,网上资料很多,查询最后发现是 IE8,9 ...

  3. JS跨域访问(ajax跨域)

    好吧,国庆有点不务正业,玩了几天游戏,咳咳 感觉还不错,放松下,本来是打算学angular2的,国庆的时候刚好也看到vue2的正式版本发布,恩,最后都没看.. 正言 为什么会出现跨域? 跨域的产生是因 ...

  4. 本机上的ajax需要跨域吗,jQuery AJAX跨域

    jQuery AJAX跨域 这是两个页面,test.php和testserver.php. test.php的 $(function() { $.ajax({url:"testserver. ...

  5. php p3p跨域登录,php+ajax实现多域名跨域登录例子(基于P3P)

    在以前如果我们要实现php+ajax实现多域名跨域登录的话很多朋友都碰到无法正常跨域登录问题,下面我来给大家解决跨域名登录问题,有需要的参考. 该同步登陆需求需满足以下三个关键点: 1)A域名下登陆的 ...

  6. ajax跨域请求原理,Ajax跨域请求的原理(图文教程)

    这篇文章主要为大家详细介绍了Ajax跨域请求的原理,Ajax怎么样做跨域请求?具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Ajax跨域请求的具体实现过程,供大家参考,具体内容 ...

  7. ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践

    解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 此处手札 供后人参 ...

  8. ajax跨域服务器404,Ajax和跨域

    集成用多了连这都忘了系列(三) AJAX 1.什么是Ajax ajax=异步js和XML,是一种用于创建快速动态网页的的技术,可以在整个网页不刷新的情况下对网页的某一部分进行更新. 2.ajax工作原 ...

  9. ajax上送src,使用script的src实现跨域和类似ajax效果

    场景 假如有两个域名不同的服务器, a.com和b.com,在b.com/b_return_js.PHP这个接口里, 可以获取一些数据. 当然,假如是b.com的页面里, 可以使用ajax,直接请求这 ...

最新文章

  1. 零基础学习python_异常处理(32-33课)
  2. 年度重磅发布:《人工智能发展报告2020》
  3. SAP Fiori应用的三种部署方式
  4. TP5 封装通用的微信服务类
  5. 「基本功」不可不说的Java“锁”事
  6. U3D协程Coroutine之WWW与Update()的并行测试
  7. Python 学习第三部分函数——第一章函数基础
  8. JSON数据从OSS迁移到MaxCompute最佳实践 1
  9. php xml 返回 微信,php版微信返回用户text输入的方法
  10. 灌醉茅台董事长拿到便宜酒?潘长江和茅台双双回应...
  11. 解决:WebDriverException: 'chromedriver' executable needs to be in PATH
  12. java 中特殊的_Java中一些特殊关键字
  13. 单链表逆置-java(递归与非递归)
  14. java nlpir_1---------java调用NLPIR(ICTCLAS2016)实现分词功能
  15. uniapp——点击图片放大预览
  16. MIT Mini Cheetah 的驱动与结构原理解读以及对尺寸效应
  17. 【宝藏系列】如何解决word选中文字按backspace无法删除的问题
  18. uploadify 2.1.0 java spring mvc 2003版excel 附件上传
  19. 项目总监岗位职责与思考
  20. 已知分布函数求概率密度例题_二次函数讲义(三)

热门文章

  1. python学习: 优秀Python学习资源收集汇总--转
  2. ucosii任务堆栈的作用是什么呢?
  3. Git提交branch到remote
  4. C++笔记——指针函数/函数指针
  5. bert 无标记文本 调优_使用BERT准确标记主观问答内容
  6. ml是什么_ML,ML,谁是所有人的冠军?
  7. ansys电力变压器模型_变压器模型……一切是如何开始的?
  8. 爱是谋杀:读徐小斌的《别人》
  9. 64位Ubuntu kylin 16.04搭建tftp服务器
  10. Unity Android解决信息流广告关闭报错