asp.net – Jquery Ajax,不在Internet Explorer中工作
我正在尝试做一些jQuery ajax,它适用于Firfox和Chrome,但不适用于Internet Explorer 9.
最终的代码必须跨越子域,这在默认传输中不起作用. 所以我正在尝试创建一个在Internet Explorer中使用的自定义传输 方法1 $.ajaxTransport("+*",function (options,originalOptions,jqXHR) { if (jQuery.browser.msie && window.XDomainRequest) { var xdr; return { send: function (headers,completeCallback) { // Use Microsoft XDR xdr = new XDomainRequest(); xdr.open("get",options.url); xdr.onload = function () { if (this.contentType.match(//xml/)) { var dom = new ActiveXObject("Microsoft.XMLDOM"); dom.async = false; dom.loadXML(this.responseText); completeCallback(200,"success",[dom]); } else { completeCallback(200,[this.responseText]); } }; xdr.ontimeout = function () { completeCallback(408,"error",["The request timed out."]); }; xdr.onerror = function () { completeCallback(404,["The requested resource could not be found."]); }; xdr.send(); },abort: function () { if (xdr) xdr.abort(); } }; } }); 我已经创建了一个简单的示例页面来演示第一种技术: 请注意,如果您使用自定义传输,则正常传输将失败,除非您刷新 这个想法来自这里: 当它失败时,在$ajax上调用的’error’方法中,除了’error’之外,不会给出任何错误消息.我确实在if工具的’Network’选项卡上得到了一个405方法,但是服务器端的东西确实执行了. 方法2 if ('XDomainRequest' in window && window.XDomainRequest !== null) { // override default jQuery transport jQuery.ajaxSettings.xhr = function() { try { return new XDomainRequest(); } catch(e) { } }; } 这可以在这里找到: 在这个实际上,我实际上在ie工具的’network’选项卡上获得了200个代码,但是没有调用$ajax的’错误’或’成功’pararm. 如果我在第二个上加一个超时,那么它会返回’error’函数并显示’timeout’消息. 解决方法
这是我经过大约一天的努力解决这个不一致之后的解决方案……
// new method as to not overwrite jQuery's defaults var cors = (window.XDomainRequest) ? function(url,callback) { var xdr = new XDomainRequest(); xdr.open('get',url); xdr.onload = function() { callback(xdr.responseText); } xdr.send(); } : $.get; // else,use jQuery's method 使用… cors(url,function(msg) { alert(msg); }); // pretty well same as $.get 复制和粘贴,这当然不能用于所有目的,但它是一个开始,它的工作原理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 弄清楚为什么asp.net身份验证票证即将到期
- asp.net-mvc – 帮助/提示提高我的ASP.NET MVC 2网站的性能
- asp.net-mvc – Route Constraint Isnt适用于ASP.NET MVC
- asp.net – 是否可以解密和查看ViewState值?
- 什么是ASP.NET相当于PHP中的memcached?
- ASP.NET – 从不调用以编程方式创建的按钮的事件处理程序
- asp.net – 如何使用依赖注入将工作单元容器传递到存储库的
- AspNetCore MVC页面数据提交验证
- asp.net – ViewState支持的属性不适用于列表
- .net – 将大型资源文件物理拆分为多个文件,而编译器将其视
- entity-framework – 术语’scaffold-dbcontext’
- asp.net – 如何使用资源文件设置按钮文本
- asp.net – User.GetUserId()在控制器的构造函数
- asp.net-mvc – 在MVC2中使用FormsAuthenticatio
- asp.net-mvc-4 – 将ASP.NET Core与旧版.Net Fra
- 走进 .Net 单元测试
- asp.net – 获取Gridview的Selected行
- ASP.NET中XML转JSON的方法实例
- ASP.NET 2中的ISO-8859-1到UTF8
- asp.net CustomValidator从不触发OnServerValida