2016-11-24 4 views
1

Мой вызов отправляет мой файл cookie вместе с моей полезной нагрузкой. Я просто добавляю cookie в существующую и запущенную программу. Полезная нагрузка (песня) становится там просто прекрасной. И я не получаю никаких ошибок на консоли браузера.браузер не получает мой cookie-сервер python?

Я, кажется, могу отправить кусок вместе с моими данными JSON просто отлично.

Когда я смотрю заголовки в инструментах разработчика Chrome, я вижу файл cookie. Но, когда я ищу cookie на вкладке Application >> Cookie, ничего не существует. Таким образом, заголовок файла cookie, кажется, отправляется клиентом, который не сохраняет его.

И, у клиента .... document.cookie is null.

Мой тестовый код создает единый файл cookie с именем sessionID.

Вот заголовок ответа в Chrome: Вы можете увидеть мое поддельное 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 

Вот скриншот указует на отсутствии Cookies. 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

Хром не поддерживает файлы cookie при работе с локальными файлами по умолчанию, как я вижу, ваш случай на снимке экрана, который вы опубликовали.

Однако вы можете изменить это, запустив Chrome с помощью флага --enable-file-cookies.

Подробнее об этом in this post.

+0

Мой Chrome может поддерживать локальные файлы cookie, у меня есть тест cookie, который отлично работает, не добавляя полезную нагрузку JSON. Тем не менее, я использовал вышеуказанные файлы-файлы, но все еще не работал на меня. Благодарю. – Iggy

Смежные вопросы