我尝试使用set-cookie标头来响应服务器
我的cgi脚本开头如下
#!/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"""
但是,在我的Chrome上检查来自服务器的响应时...调试器在响应部分中没有显示任何set-cookie标头,并且set-cookie标头作为一部分打印在响应部分中文本,与内容类型标题不同...
知道我做错了吗?
谢谢你们
答案 0 :(得分:3)
问题是你要在“Content-Type”标题的末尾添加两个换行而不是一个换行,这是HTTP标题和正文之间的标准分隔符。
您应该在每个标头值的末尾发出\r\n
(而不是\n\n
)
完成发送标题后,您应该再打印一个\r\n
来开始发送邮件正文。
编辑:此外,您应该使用sys.stdout.write(...)
或在print语句后附加一个逗号,以避免插入隐式换行符。如,
print "Header: Value\r\n",
答案 1 :(得分:0)
您应该在Content-type:text / html行之前打印Set-Cookie行。