Wie setze ich Response-Header in Flask?

Dies ist mein code:

@app.route('/hello', methods=["POST"])
def hello():
    resp = make_response()
    resp.headers['Access-Control-Allow-Origin'] = '*'
    return resp

Jedoch, wenn ich eine Anfrage vom browser an meinen server bekomme ich diese Fehlermeldung:

XMLHttpRequest cannot load http://localhost:5000/hello. 
No 'Access-Control-Allow-Origin' header is present on the requested resource.

Habe ich auch schon versucht dieser Ansatz, die Einstellung der Antwort-Header "nach" Antrag:

@app.after_request
def add_header(response):
    response.headers['Access-Control-Allow-Origin'] = '*'
    return response

Kein Würfel. Ich bekomme den gleichen Fehler. Gibt es eine Möglichkeit, setze einfach nur den Antwort-Header in der route-Funktion? Sowas wäre ideal:

@app.route('/hello', methods=["POST"])
    def hello(response): # is this a thing??
        response.headers['Access-Control-Allow-Origin'] = '*'
        return response

aber ich kann nicht finden, jedenfalls dazu. Bitte helfen Sie.

BEARBEITEN

wenn ich curl die url mit einer POST-Anfrage in etwa so:

curl -iX POST http://localhost:5000/hello

Bekomme ich diese Antwort:

HTTP/1.0 500 INTERNAL SERVER ERROR
Content-Type: text/html
Content-Length: 291
Server: Werkzeug/0.9.6 Python/2.7.6
Date: Tue, 16 Sep 2014 03:58:42 GMT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request.  Either the server is overloaded or there is an error in the application.</p>

Irgendwelche Ideen?

InformationsquelleAutor der Frage dopatraman | 2014-09-16

Schreibe einen Kommentar