我的挑战是将我的cookie与我的有效载荷一起发送。我只是在现有的,正在运行的程序中添加一个cookie。有效载荷(歌曲)到达那里就好了。而且,我没有在浏览器控制台上收到任何错误。
我似乎能够发送一个cooke,以及我的JSON数据就好了。
当我查看Chrome开发者工具中的标题时,我会看到Cookie。但是,当我在Application>> Cookie标签中查找cookie时,没有任何内容。因此,似乎发送了一个cookie标头,客户端没有存储它。
并且,在客户端.... document.cookie为空。
我的测试代码正在创建一个名为sessionID的cookie。
以下是Chrome中的响应标题:您可以看到我的假sessionID cookie:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:null
Content-Type:text/plain
Date:Wed, 23 Nov 2016 22:41:10 GMT
Server:BaseHTTP/0.6 Python/3.5.2
Set-Cookie:sessionID=4jjdd7ghhq
以下是指示无Cookie的屏幕截图。 no cookies in application
这是我的服务器代码,用Python3编写:
def do_OPTIONS(self):
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", self.headers["Origin"])
self.send_header("Access-Control-Allow-Credentials", "true")
self.send_header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
self.send_header('Access-Control-Allow-Headers', 'Content-Type')
self.end_headers()
return
def do_GET(self):
if self.path.startswith("/songs/ID"):
self.load_cookie()
db=MediaDB()
ID = self.parseID(self.path)
song = db.getSong(ID)
self.send_response(200)
self.send_header('Access-Control-Allow-Origin', self.headers["Origin"])
self.send_header("Access-Control-Allow-Credentials", "true")
self.send_header("Content-Type", "text/plain")
self.cookie["sessionID"] = "4jjdd7ghhq"
self.send_cookie()
self.end_headers()
json_string = json.dumps(song)
self.wfile.write(bytes(json_string, "utf-8"))
elif self.path.startswith("/songs"):
self.getSongs()
return
else:
self.badPath()
return
def load_cookie(self):
if "Cookie" in self.headers:
self.cookie = cookies.SimpleCookie(self.headers["Cookie"])
else:
self.cookie = cookies.SimpleCookie()
return
def send_cookie(self):
for morsel in self.cookie.values():
self.send_header("Set-Cookie", morsel.OutputString())
return
================
我的搜索结果很短。如果有什么东西可以帮助我,我感谢你指出这一点。哦,顺便说一句,我的皮肤非常厚,所以如果我做一些愚蠢的事情 - 可以指出来......我必须以某种方式学习。公顷!
答案 0 :(得分:0)
默认情况下,Chrome在使用本地文件时不支持Cookie,正如我们在您发布的屏幕截图中看到的那样。
但是,您可以通过使用--enable-file-cookies
标记启动Chrome来更改此设置。
详细了解in this post。