2017-08-07 1 views
0

So habe ich ein HTML-Eingabefeld, das eine JavaScript-Funktion aufruft, nachdem Sie auf eine Schaltfläche Absenden klicken. Ich möchte die Daten, die der Benutzer in dieses Eingabefeld eingibt, an meinen Tornado-Server senden. Ich bin sehr neu in all dem, und habe ein paar verschiedene Möglichkeiten ausprobiert, aber keine schien zu funktionieren. Mit diesem Code erhalte ich einen 405 (Methode nicht erlaubt) Fehler. Hier ist, was ich habe jetzt:Wie sende ich eine Zeichenfolge mit JSON an meinen Server? (Tornado)

var myData = hello 

function pushURL(){ 

    var passThis = { 
     apples : myData 
    } 

    $.ajax({ 
     url: "/", 
     type: 'POST', 
     contenttype: 'application/json; charset=utf-8', 
     data : JSON.stringify(passThis), 
     dataType: 'JSON' 
    }); 
} 

Und hier ist mein Tornado-Skript:

import tornado.ioloop 
import tornado.web 
import json 

#Utility libraries 
import os.path 

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.render('index.html') 

#This tells tornado where to find static files 
settings = dict(
    template_path = os.path.join(os.path.dirname(__file__), "templates"), 
    static_path = os.path.join(os.path.dirname(__file__), "static"), 
    debug = True 
) 

# r"/" == root website address 
application = tornado.web.Application([ 
    (r"/", MainHandler) 
],**settings) 

#Start the server at port n 
if __name__ == "__main__": 
    print('Server Running...') 
    print('Press ctrl + c to close') 
    application.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

Ich werde müssen die Zeichenfolge in einigen serverseitigen Python-Skripte verwenden, aber jetzt Ich möchte es nur auf der Konsole drucken sehen, wenn der Benutzer auf Senden klickt. Jede Hilfe würde sehr geschätzt werden. Auch, wenn Sie in etwas ELI5 Begriffen erklären können, würde das cool sein.

Antwort

0

Sie senden Daten als Postanforderung vom Front-End an Ihre Indexroute, daher müssen Sie eine Post-Methode in der MainHandler-Klasse definieren. Bitte beachten Sie diese Dokumentation here.

Verwandte Themen