Tornado 支持JSONP的请求封装
2013-12-31 12:04
429 查看
由于JSONP强大的跨域访问功能,发现tornado没有对jsonp的默认支持,还好tornado是开源的,就简单实现了一个JSONPHandler,对一切JSONP请求进行封装。
对于jsonp跨域见上一篇文章
tornado对于jsonp的封装主要在finish的时候返回的json是对前端页面js的调用
在tornado中可是直接使用函数修饰,对返回的数据做jsonp的处理
前端的请求
对于jsonp跨域见上一篇文章
tornado对于jsonp的封装主要在finish的时候返回的json是对前端页面js的调用
import json from functools import wraps def jsonp(func): "Wraps JSONfiled output for JSONP requests." @wraps(func) def decorated_func(*args, **kwargs): # First argument always be the requestHandler requestHandler = args[0] callback = requestHandler.get_argument('callback', False) data = json.dumps(func(*args, **kwargs)) content = str(callback) + '(' + data + ')' if callback else data requestHandler.write(content) requestHandler.finish() return decorated_func
在tornado中可是直接使用函数修饰,对返回的数据做jsonp的处理
from tools import jsonp class AnalyzeDomainIp(tornado.web.RequestHandler): @jsonp def get(self, collection='todayDomain', domain=''): return datacenter.get_domain_detail_ip(collection, domain)
前端的请求
$.getJSON('http://www.server.com:8081/jsonp/helloword?jsonp=?', function(data) { $('#get-console').html(data['josnp-get']); });
相关文章推荐
- Tornado JSONPHandler, 支持JSONP的请求封装
- SpringBoot多跨域请求的支持(JSONP)
- jsonp跨域请求豆瓣api封装实例
- SpringBoot多跨域请求的支持(JSONP)
- 封装jsonp跨域请求
- 第六十二篇、AFN3.0封装网络请求框架,支持缓存
- php 支持jsonp跨域请求
- jsonp跨域的缺点是,只能支持针对纯文本内容的Get请求。
- Spring Boot支持JSONP跨域请求数据(Ajax的jsonp)
- libcurl基础教程及封装(支持同步异步请求,支持多线程下载,支持https)
- Vue 中封装 JSONP跨域请求
- 网络请求工具类之OkHttp3封装(二)上(支持请求取消、异步请求的线程切换)
- ajax 跨域封装 JSONP方式 默认还是GET提交请求
- 原创 javascript 封装jsonp 请求
- 为什么jsonp只支持get请求?JSONP是同步还是异步
- java封装httpClient工具(支持http和https,包含get和post请求)
- 网络请求工具类之OkHttp3封装(二)下(支持请求取消、异步请求的线程切换)
- SpringMVC支持Jsonp跨域请求的方法
- 简易封装 XHR:支持 GET/POST/PUT/DELETE/JSONP/FormData
- springboot跨域请求,实现跨域jsonp请求服务端数据自动封装