Meu desafio é enviar meu cookie junto com minha carga útil. Estou simplesmente adicionando um cookie a um programa existente e em execução. A carga (música) está chegando bem. E não estou recebendo erros no console do navegador.
Parece que posso enviar um cooke, bem como os meus dados JSON.
Quando vejo os cabeçalhos nas Ferramentas do desenvolvedor do Chrome, vejo o cookie. Mas quando eu procuro o cookie na guia Aplicativo > > Cookie, nada está lá. Então, um cabeçalho de cookie parece ser enviado, mas o cliente não o armazena.
E, no cliente .... document.cookie é nulo.
Meu código de teste está criando um único cookie chamado sessionID.
Aqui está o cabeçalho de resposta no Chrome: você pode ver meu cookie false sessionID: 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
Aqui está a captura de tela indicando Nenhum cookie. sem cookies na aplicação
Aqui está o código do meu servidor, escrito em 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
================
Minhas pesquisas estão em falta. Se há algo que possa me ajudar, agradeço que você aponte isso. Ah, a propósito, minha pele é bem grossa, então se eu estou fazendo algo estúpido - não há problema em apontar ... Eu tenho que aprender de alguma forma. ha!
Além disso, caso você queira saber se é porque o Chrome às vezes não define um cookie se o cliente e o host estiverem no mesmo sistema, testei em torno disso, com o servidor em um sistema remoto, e o cliente no meu host local.
Mais uma vez, agradeço sua ajuda.