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 – 渗透测试人员说.ASPXAUTH cookie是不安全的并且
- asp.net – ASP MVC – 默认的HTTP标头有任何常量吗?
- ASP.NET中的超链接控件和链接控件有什么区别?
- asp.net – 绑定ListView InsertItemTemplate中的DropDownL
- asp.net-mvc – 用于测试目的的假开放ID提供程序
- asp.net – 基于函数式编程的UI
- asp.net – 网站在解决方案构建后需要很长时间才能启动
- asp.net-mvc – 用于选择的KendoUI网格Ajax绑定参数
- asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数据
- asp.net-mvc – 如何在扩展方法中使用HTML帮助器方法?
- ASP.NET缓存 方法和最佳实践
- Jquery+ajax请求data显示在GridView上(asp.net)
- asp.net – Orchard CMS是否支持移动呈现?
- asp.net-core – .NET Core SDK安装程序无法在Wi
- Asp.net Core 1.1 升级后操作mysql出错的解决办法
- asp.net-mvc – ASP.Net [HiddenInput]数据属性在
- ASP.NET MVC 4 JSON绑定到视图模型 – 嵌套对象错
- asp.net-mvc-3 – 在MVC3中使用Html.LabelFor的表
- asp.net-mvc – 如何成功配置Common.Logging?
- asp.net – 是否可以根据用户角色隐藏/显示Kendo
