I’m trying to response from the server with a set-cookie header
my cgi script begins as follows
#!/usr/bin/env python
import json
from collections import defaultdict
import cgi
import cgitb; cgitb.enable() # for troubleshooting
from MySQL import sql
form = cgi.FieldStorage()
mode = form.getvalue('mode')
print """Content-type: text/html\r\n"""
print """Set-Cookie: name=12345\r\n\r\n"""
However, when checking the response from the server on my Chrome..the debugger doesn’t show any set-cookie header in the response part, and the set-cookie header is printed in the response part as part of the text, unlike the content-type header…
Any idea what I did wrong?
Thanks guys
The problem is that you are appending two newlines instead of one to the end of your “Content-Type” header, which is the standard separator between HTTP headers and body.
You should instead be emitting
\r\nat the end of each header value (as opposed to\n\n)When you are done emitting headers, you should print one extra
\r\nto begin your message body.EDIT: Additionally, you should either be using
sys.stdout.write(...)or appending a trailing comma to your print statement to avoid its inserting the implicit newline. E.g.,print "Header: Value\r\n",