2016-06-20 1 views
0

Ich erstelle eine App, um Informationen (Art von Login) von index.html zu nehmen und dann auf zweite HTML-Seite umleiten capture_simple. html. Aber beim Senden der Post-Anfrage von der zweiten Seite zeigt der Server Fehler 400 an und leitet später zurück zu '/' ('/' ist wo der Fehler angezeigt wird), anstatt bei '/ captureSimple' zu bleiben.Flasch Request zeigt 400 Ungültige Anfrage und leitet zu '/' statt '/ someURL'

Dies ist mein Code für Kolben:

#imports 
#app declaration 
#__name__ stuff 
@app.route('/') 
def my_form(): 
    return render_template("index.html") 

@app.route('/', methods=['POST']) 
def my_form_post(): 
    global processed_text 
    text = request.form['text'] 
    processed_text = text.upper() 
    make_a_dir(processed_text) 
    #sends data for foldername to make_a_dir() 
    return redirect(url_for('captureSimpleFunc')) 




#captureSimple : to displey simple image  
@app.route('/captureSimple', methods=['GET','POST']) 
def captureSimpleFunc(): 
    if request.method=='GET': 
     return render_template('capture_simple.html') 
    if request.method == 'POST': 
     xtr=request.form['flip'] 
     print(xtr) 
     #some statements 
     return xtr 

So habe ich zwei HTML-Seiten in meinem Vorlagenordner. Auf Seite index.html Diese HTML-Seite verursacht keine Probleme. Ich setze den Code trotzdem.

<body> 
    <div id="container_1"> 
    <h1 class="all" id="head_name">OWL </h1> 
    <h2 class="all" id="head_instru">Enter MR number</h2> 
    <form class="all" action="." method="POST"> 

    </div><!-- 
     <input id="keyboard" type="text" class="ui-keyboard-input ui-widget-content ui-corner-all" aria-haspopup="true" role="textbox" > 
     <input id="keyboard" type="text" > <br><br> --> 
     <div id="wrap"> <!-- wrapper only needed to center the input --> 

     <!-- keyboard input --> 
     <input id="keyboard" type="text" name="text"><br><br> 
     <input class="all" id="button_" type="submit" name="my-form" value="Send"> 
    </div> <!-- End wrapper --> 

    </form> 
    </div> 
</body> 

Und dann gibt es die zweite capture_simple.html Seite. Hier liegt das eigentliche Problem.

<body> 
    <form method="POST" action="."> 
    <input type="submit" name="flip"> 
    </form> 
</body> 

[Ich habe den unnötigen Code oben removed]

Meine app mich auf die zweite Seite wird umgeleitet, aber die Flip Schaltfläche in Form alle Fehler Bad Request es schafft beim Drücken 400.

Das Terminal zeigt so etwas wie:

"POST/HTTP/1.1" 400 -

Antwort

0

Also, ich bin meine eigene Frage zu beantworten.

Das Problem war, ich hatte

action="." 

in meiner Form in capture_simple.html Datei, so dass er die Anfrage an die '/' root sendete und alle Probleme zu schaffen.

Legen Sie einfach das Action-Attribut aus dem Formular und es funktioniert einwandfrei.

Verwandte Themen