2017-09-08 2 views
2

ich ein Vermächtnis minimalistische api in einer einzigen Python-Datei haben:Set Header-Access-Control-Allow-Origin mit Pythondruck

#!C:/Python26/python.exe 
# -*- coding: UTF-8 -*- 
import json 

# code ... 

print "Content-Type: application/json" 
print 
print json.dumps(features) 

Gibt es eine Möglichkeit Header in der gleichen Weise wie den Inhaltstyp zu setzen? Suchen Sie nach etwas wie:

Ich möchte alle Cross-Domains eingehende Anfragen zulassen, oder beschränken Sie es auf bestimmte Hosts.

Antwort

2

Ja, aber das Format ist einfacher als das, was Sie sich vorstellen; Sie brauchen nur das zu tun:

print "Content-Type: application/json" 
print "Access-Control-Allow-Origin: *" 
print 
print json.dumps(features) 

Grundsätzlich keine weitere Magie passiert, was Sie in den Anführungszeichen setzen dort-es ist nur eine Zeichenkette, die als Service-Leistung als Teil der Antwort gesendet bekommen.

Mit anderen Worten, die Header einer HTTP-Antwort sind einfacher Text, genau wie die JSON-Daten, die json.dumps(features) in den Antworttext einfügt.

Die einzige Magie ist ziemlich einfach: Die Art, wie Sie wissen, welcher Teil der Antwort die Header ist und welcher Teil der Body ist, ist, dass vor dem Anfang des Körpers eine leere Zeile (extra Newline) ist; alles vor diesem Zeilenumbruch wird von Browsern und anderen Web-Clients als Kopfzeilen behandelt - Sie können also alles, was Sie wollen, dort ablegen, und der Webserver sendet es einfach so, wie es ist.

+0

'print 'HTTP/1.0 200 OK'' und fügen Sie eine Größendefinition für nicht überprüfen vollständige Antwort für' ist korrekt? ' – dsgdfg

+0

@ dsgdfg yeah Ich war mir nicht sicher, ob das Snippet in der Frage abgeschlossen war, oder vielleicht aufgerufen von etwas anderem? Der einzige Teil, den ich ansprechen wollte, war nur die spezifische Frage, wie man diesen einen Header hinzufügt – sideshowbarker