Я пытался задать этот вопрос ранее, но не получил ответа.Теперь публикуем минимальный код, который отображает эту проблему.Я использую 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, которые я мог видеть.