ie-9 以下ajax无法跨域的问题。只要add:jQuery.support.cors=true;即可
2024-09-03 02:37:48
if (!jQuery.support.cors && window.XDomainRequest) {
var httpRegEx = /^https?:\/\//i;
var getOrPostRegEx = /^get|post$/i;
var sameSchemeRegEx = new RegExp('^'+location.protocol, 'i');
var xmlRegEx = /\/xml/i; // ajaxTransport exists in jQuery 1.5+
jQuery.ajaxTransport('text html xml json', function(options, userOptions, jqXHR){
// XDomainRequests must be: asynchronous, GET or POST methods, HTTP or HTTPS protocol, and same scheme as calling page
if (options.crossDomain && options.async && getOrPostRegEx.test(options.type) && httpRegEx.test(userOptions.url) && sameSchemeRegEx.test(userOptions.url)) {
var xdr = null;
var userType = (userOptions.dataType||'').toLowerCase();
return {
send: function(headers, complete){
xdr = new XDomainRequest();
if (/^\d+$/.test(userOptions.timeout)) {
xdr.timeout = userOptions.timeout;
}
xdr.ontimeout = function(){
complete(500, 'timeout');
};
xdr.onload = function(){
var allResponseHeaders = 'Content-Length: ' + xdr.responseText.length + '\r\nContent-Type: ' + xdr.contentType;
var status = {
code: 200,
message: 'success'
};
var responses = {
text: xdr.responseText
}; try {
if (userType === 'json') {
try {
responses.json = JSON.parse(xdr.responseText);
} catch(e) {
status.code = 500;
status.message = 'parseerror';
//throw 'Invalid JSON: ' + xdr.responseText;
}
} else if ((userType === 'xml') || ((userType !== 'text') && xmlRegEx.test(xdr.contentType))) {
var doc = new ActiveXObject('Microsoft.XMLDOM');
doc.async = false;
try {
doc.loadXML(xdr.responseText);
} catch(e) {
doc = undefined;
}
if (!doc || !doc.documentElement || doc.getElementsByTagName('parsererror').length) {
status.code = 500;
status.message = 'parseerror';
throw 'Invalid XML: ' + xdr.responseText;
}
responses.xml = doc;
}
} catch(parseMessage) {
throw parseMessage;
} finally {
complete(status.code, status.message, responses, allResponseHeaders);
}
};
xdr.onerror = function(){
complete(500, 'error', {
text: xdr.responseText
});
};
xdr.open(options.type, options.url);
//xdr.send(userOptions.data);
xdr.send();
},
abort: function(){
if (xdr) {
xdr.abort();
}
}
};
}
});
};
add: jQuery.support.cors = true;
最新文章
- Strus2第一次课:dom4j操作xml
- linux日常运维管理
- SQL Server 自增字段重置
- mysql之字符编码问题
- 初始化 Ubuntu Trusty 14.04
- eclipse JAVA实现AES的加密和解密算法
- c++实现类似Common Lisp的多参数加法和比较
- ASP.NET Core 2.0 : 三. 项目结构
- 大数据 -->; 分布式服务框架Zookeeper
- sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)
- 树莓派pwm驱动好盈电调及伺服电机
- 线程等待(java)
- JavaAndroid项目结构
- 爬虫基础以及 re,BeatifulSoup,requests模块使用
- 01-spark基础
- DWZ(JUI) 教程 跨域请求 iframeNavTab
- Java代码度量分析工具:Designite简介
- linux命令:crontab命令(转)
- WPF性能调试系列 – 内存监测
- Oh My Fish! 让你的 Shell 漂亮起来