Проблема перенаправления торнадо с питона - PullRequest
0 голосов
/ 12 октября 2018

Я пытался задать этот вопрос ранее, но не получил ответа.Теперь публикуем минимальный код, который отображает эту проблему.Я использую Python 3.6.3 и новую версию Tornado (5.1.1).Сначала index.html.При загрузке я делаю запрос get на / login, который обрабатывается сервером торнадо python (см. После HTML-кода).

<!DOCTYPE html>
<html>

<script src="https://d3js.org/d3.v3.js"></script>
<script>


    function login(){
      var params = window.location.search;
      d3.xhr("http://localhost:8000/login")
        .get(function(err, data){
            console.log(data);
        });
    }

</script>
<body onload="login()">
<p id="params"></p>
<span onclick="login()">Click Here to ReadCode</span> 
</body>
</html>

Код сервера имеет следующий код:

import tornado.ioloop
import tornado.web
import os
R_URL='http://example.com'
class MainHandler(tornado.web.RequestHandler):
    def set_default_headers(self):
       print("setting headers!!!")
       self.set_header("access-control-allow-origin", "*")
       self.set_header('Access-Control-Allow-Methods', 'GET, PUT, DELETE, OPTIONS')

       self.set_header("Access-Control-Allow-Credentials", "true")
       self.set_header("Access-Control-Allow-Headers",
                    "Authorization, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, X-Requested-By, If-Modified-Since, X-File-Name, Cache-Control")

    def get(self):
       print("GET: MainHandler::localhost")
       self.redirect(R_URL)

def make_app():
   root = os.path.dirname(__file__)
   print("root", root)
   application = tornado.web.Application([
    (r"/login", MainHandler),
    (r"/(.*)", tornado.web.StaticFileHandler, {"path": root, "default_filename": "index.html"}),
])
   return application

if __name__ == "__main__":
app = make_app()
app.listen(8000)
print("Listening on port 8000")
tornado.ioloop.IOLoop.current().start()

Когда я делаю это, я продолжаю получать эту ошибку в браузере для перенаправления, но не уверен, как удалить ошибку.Я попробовал все предложения на Google, которые я мог видеть.

...