跨域Ajax - jsonp - cors 参考博客: http://www.cnblogs.com/wupeiqi/articles/5703697.html http://www.cnblogs.com/wupeiqi/articles/5369773.html JSONP 网站: - requests发请求时,跨域无限制 - ajax发请求时,浏览器限制【是否可以绕过限制?】 如何绕过浏览器的同源策略? - ajax,受同源策略限制。 - img,script,iframe,不受同源策略限制。 - JSONP: 本地:先定义函数 远程:func("数据") 方式一:手动 /* function funcvvvvvv(arg) { alert(arg); document.head.removeChild(tag); } function jsonp(url){ tag = document.createElement('script'); tag.src = url; document.head.appendChild(tag); }*/ 方式二:调用jQuery function Jsonp2(){ $.ajax({ url: "http://127.0.0.1:8000/get_data.html", type: 'GET', dataType: 'JSONP', success: function(data){ console.log(data); } }) } 本质:创建script标签 编写跨域请求: 本地: function list666(arg){ } $.ajax({ url: "http://www.jxntv.cn/data/jmd-jxtv2.html", type: 'GET', dataType: 'JSONP', jsonp: 'callback', jsonpCallback: 'list666' }) 远程: func_name = request.GET.get('callback') return HttpResponse('%s("机密数据")' %func_name) 应用场景: 你,调用者 CEO,服务商,提供API - JSONP交互 - requests模块 用户,调用者 你,服务商,提供API 专业:获取用户请求callback,func(内容) JSONP是否可以发送POST请求?
CORS
本地:无作为
远程:设置响应头
response['Access-Control-Allow-Origin'] = "http://127.0.0.1:8888"
response['Access-Control-Allow-Methods'] = "PUT"
response['Access-Control-Allow-Headers'] = "xxx"