在IE9使用CORS的思路——XDomainRequest

185 阅读1分钟

前端最常用的就是CORS来调用Restful接口,但是IE9却真够侘寂的,连常规的XHR都不能完整支持。于是,动手写一遍IE10以下专属的 XDomainRequest。 但是我测试了一下XDomainRequest, 它能接收html,text,xml和js文件,推荐GET方法。

前端(ES5):

if (jQuery.browser.msie && windows.XDomainRequest) {
	var xdr = new XDomainRequest();
	var timeout = 30000;
	xdr.open("GET", 'http://127.0.0.1:5000/'); //注意url中带参数一定要在目录后保留‘/’(因为ie9语法严谨),例如 http://127.0.0.1:5000/?aa=1&bb=2
	xdr.timeout = timeout;
	xdr.onload = function(data) {
		console.log(xdr.responseText);
	}
	xdr.process = function() {};
	xdr.send();
}

后端(Flask):

from flask import Flask
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app)

@app.route('/', methods=['GET'])
def home():
	return '<h1>Hello Flask</h1>'

if __name__ == "__main__":
	try:
		app.run(host='0.0.0.0', port=5000,debug=True)
	except:
		pass