zoukankan      html  css  js  c++  java
  • tornado接收ajax的post请求报错WARNING:tornado.access:405 OPTIONS /add

    后端报错信息

    WARNING:tornado.access:405 OPTIONS /add (::1) 1.00m

    前端报错信息

    2xhr.js?ec6c:172 OPTIONS http://localhost:8888/add 405 (Method Not Allowed)/#/:1 Access to XMLHttpRequest at 'http://localhost:8888/add' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    解决办法

    在代码中实现options方法并设置self.set_header('Access-Control-Allow-Headers', 'Content-Type')

    import tornado.ioloop
    import tornado.web
    import json
    
    
    class AddHandler(tornado.web.RequestHandler):
    
        def initialize(self):
            # self.request.method = 'POST'
            # print(self.request.method, type(self.request.method))
            self.set_default_header()
    
        def get(self):
            self.write("U get story id is ")
    
        def post(self):
            self.write(json.dumps({"sum": 'rrrrrr'}))
    
        def set_default_header(self):
            print("setting headers!!!")
            self.set_header('Access-Control-Allow-Origin', '*')
            # self.set_header('Access-Control-Allow-Origin', 'http://localhost:8080')
            # self.set_header('Access-Control-Allow-Headers', 'X-Requested-With')
            self.set_header('Access-Control-Allow-Headers', '*')
            self.set_header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS')
            self.set_header('Content-Type', 'application/json; charset=UTF-8')
            self.set_header('Access-Control-Allow-Headers', 'Content-Type')
    
        def options(self):
            pass
    
    
    application = tornado.web.Application([
        (r"/add", AddHandler),
    ])
    
    if __name__ == "__main__":
        application.listen(8888)
        tornado.ioloop.IOLoop.instance().start()

    参考网址

    https://github.com/tornadoweb/tornado/issues/2104

    https://stackoverflow.com/questions/19006783/tornado-post-405-method-not-allowed?noredirect=1&lq=1

  • 相关阅读:
    基本语句
    mysql多表查询方法(join)
    MySQL JOIN 多表连接
    MySQL SHOW INDEX语法的实际应用
    1.索引作用
    MySQL索引和优化查询
    mysql复合索引、普通索引总结
    mysql 索引相关
    for循环的break和continue
    保护程序猿滴眼睛---修改VS 2012 编辑器颜色
  • 原文地址:https://www.cnblogs.com/chen55555/p/11586431.html
Copyright © 2011-2022 走看看