跨域请求访问

如果是前后端分离,那就肯定会遇到cros跨域请求难题,可以设置一个BaseHandler,然后继承即可。

class BaseHandler(tornado.web.RequestHandler):
def __init__(self, *argc, **argkw):
super(BaseHandler, self).__init__(*argc, **argkw) # 解决跨域问题
def set_default_headers(self):
self.set_header("Access-Control-Allow-Origin", "*") # 这个地方可以写域名
self.set_header("Access-Control-Allow-Headers", "x-requested-with")
self.set_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
self.set_header("Access-Control-Max-Age", 1000)
self.set_header("Content-type", "application/json") def get(self):
self.write('request get') def post(self):
self.write('request post') # vue一般需要访问options方法, 如果报错则很难继续,所以只要通过就行了,当然需要其他逻辑就自己控制。
def options(self):
# 返回方法1
self.set_status(204)
self.finish()
# 返回方法2
self.write('{"errorCode":"00","errorMessage","success"}')

继承BaseHandler类

class AdminTasks(BaseHandler):
# 重写了BaseHandler父类的get方法
def get(self):
# 处理业务逻辑
return self.write(json.dumps({"status": "success", "data": "请求成功"})) # 重写了BaseHandler父类的post方法
def post(self):
# 处理业务逻辑
return self.write(json.dumps({"status": "success", "data": "请求成功"}))

主文件Main.py文件中

class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r"/tasks", AdminTasks), # 显示个人所有任务
]
tornado.web.Application.__init__(self, handlers, **settings) if __name__ == "__main__":
tornado.options.parse_command_line()
app = Application()
app.listen(options.port)
print("visit at", "http://127.0.0.1:%s" % options.port)
tornado.ioloop.IOLoop.instance().start()

这时候前端页面就可以通过:http://49.236.68.166:8008/tasks,访问后端程序了。上面的代码就部署在49.236.68.166这台服务器上面。

参考:https://www.cnblogs.com/renfanzi/p/6952871.htmlhttps://www.cnblogs.com/zhangkui/p/11416575.html

附加内容:【Https异常】This request has been blocked; the content must be served over HTTPS

https://www.cnblogs.com/liqing1009/p/11290537.htmlhttps://www.cnblogs.com/sslwork/p/6028940.htmlhttps://www.cnblogs.com/756623607-zhang/p/11790283.html

Tornado—添加请求头允许跨域请求访问的更多相关文章

  1. 客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法

    客户端为了实现token认证,通过Jquery的ajaxSetup方法全局配置headers: 全局配置headers后会导致部分不需要token认证的请求变为options请求,导致跨域访问.报错信 ...

  2. 利用Access-Control-Allow-Origin响应头解决跨域请求原理

    传统的跨域请求没有好的解决方案,无非就是jsonp和iframe,随着跨域请求的应用越来越多,W3C提供了跨域请求的标准方案(Cross-Origin Resource Sharing).IE8.Fi ...

  3. 【JS跨域请求】Ajax跨域请求JSONP

    前两天被问到ajax跨域如何解决,还真被问住了,光知道有个什么jsonp,迷迷糊糊的没有说上来.抱着有问题必须解决的态度,我看了许多资料,原来如此... 为何一直知道jsonp,但一直迷迷糊糊的不明白 ...

  4. axios发送自定义请求头的跨域解决

    前端发送来的axios请求信息 this.$axios.request({  url:'http://127.0.0.1:8001/pay/shoppingcar/',  method:'post', ...

  5. 利用Access-Control-Allow-Origin响应头解决跨域请求

    //允许任何域名访问 header("Access-Control-Allow-Origin: *"); //指定域名允许跨域 header("Access-Contro ...

  6. JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求

    JSON 介绍 1. JSON: JavaScript Object Notation 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是 ...

  7. ajax跨域请求,状态码200,F12控制台报错

    在接口的地方加上请求头.//跨域请求header('Access-Control-Allow-Origin:*'); 不要在ajax里面加!!!!!!!!!

  8. jQuery jsonp跨域请求

    跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的. 浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互. 如果协议,端口和主机对于两个页面是相同的,则两个页面具 ...

  9. Vuex、axios、跨域请求处理和import/export的注意问题

    一.Vuex 1.介绍 vuex是一个专门为Vue.js设计的集中式状态管理架构. 对于状态,我们把它理解为在data中需要共享给其他组件使用的部分数据. Vuex和单纯的全局对象有以下不同: 1. ...

随机推荐

  1. Solr单机配置详解

    Solr 单机版安装 安装环境 安装 jdk:JDK 版本: jdk-8u11-linux-x64.tar.gz 环境变量配置; export JAVA_HOME=/usr/local/jdk exp ...

  2. hdu3999 The order of a Tree

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3999 题意:给一序列,按该序列插入二叉树,给出字典序最小的插入方法建相同的一棵树出来.即求二叉树的先序 ...

  3. django学习03-模版

    新手做的笔记,很可能会有理解错误的地方.欢迎拍砖. 在polls/views.py中增加下面内容,完善功能. def detail(request, question_id): return Http ...

  4. 基于iCamera App Kit 测试oV5640 500w分辨率 摄像头 总结

    基于iCamera App Kit 测试oV5640 摄像头 总结 iCamera App Kit 下载地址 http://pan.baidu.com/s/1kUMIwB1 可以参考下载链接的说明手册 ...

  5. SpringBoot+SpringDataJPA如何实现自定义查询[多表,多条件,分页,自定义sql封装]

    举个例子:我们要在已经搭建好了的JPA环境下实现联合多表,多条件,多排序条件,分页查询一个表格数据,下面的表格 返回类MyJSON: public class MyJSON { private Str ...

  6. 【Web技术】353- CDN 科普

    点击上方"前端自习课"关注,学习起来~ 一.概述 1.1 含义 CDN 的全称是 Content Delivery Network,即内容分发网络.CDN 是构建在网络之上的内容分 ...

  7. Docker--DockerFile创建自己的image

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 在我们 ...

  8. CCF-CSP题解 201903-2 二十四点

    可枚举. 写栈的主要思想是:一个数栈\(numSta\),一个运算符栈\(opSta\).遇到一个运算符,就把之前优先级\(equal\ or\ greater\ than\)它的运算符处理掉. #i ...

  9. css设置使文字显示2行多余的为省略号。。。

    .title{ font-size: .7rem; line-height: 1.5rem; overflow: hidden; /** 隐藏超出的内容 **/ word-break: break-a ...

  10. js中正则表达式的易错点

    文章目录 1. 匹配符部分匹配规则 2. 分组匹配规则: 3. 注意^的不同用法 4. 不要忘记转义 5. 正则表达式对象中lastIndex属性 6. exec VS match 1. 匹配符部分匹 ...